python新手,学习tkinter过程中遇到一个奇怪的问题,先放陋码
import tkinter as tk
from tkinter import ttk
# from tkinter.ttk import *
def questionshow():
qshow = tk.Toplevel()
qshow.geometry('200x200')
qshow.title('qshow')
# hostVar = tk.StringVar(value="127.0.0.1")
hostbox = ttk.Entry(qshow,textvariable=hostVar)
hostbox.pack()
if __name__ == '__main__':
root = tk.Tk()
root.geometry('300x300+100+100')
root.title('question')
hostVar = tk.StringVar(value="127.0.0.1")
btntoplevel = ttk.Button(root,text='toplevel',command=questionshow)
btntoplevel.pack()
root.mainloop()
就是一个简单的功能,按钮弹出子框,在子框显示一个输入框,里面显示默认值127.0.0.1
但是,当使用ttk的entry时,hostVar必须定义在main里面,才显示默认值;当使用tk的entry时,hostVar在main或者函数都可以...