Good Luck To You!
有朋友发现,在tkinter模块下,创建的OptionMenu组件一切成功,但改为ttk模块下,当点击其它选项后,第一个选项就消失了,再也不会出现了。
在ttk模块下的代码是:
from tkinter import * root=Tk() var=StringVar() tuple_op=('第1单车','第2汽车','第3火车') op1=OptionMenu(root,var,*tuple_op) op1.pack() root.mainloop()
运行一切正常! 冫亓垚
再导入ttk模块, 启动时还正常,但点击除第1项的选项后,第1选项就消失了。代码如下
from tkinter import * from tkinter.ttk import * root=Tk() var=StringVar() tuple_op=('第1单车','第2汽车','第3火车') op1=OptionMenu(root,var,*tuple_op) op1.pack() root.mainloop()
分析出问题的原因:
在ttk模块下,创建OptionMenu组件语法已经变了,但有不少朋友并没有发现,ttk下的语法是:
OptionMenu(父组件,绑定的变量,启动时默认的选项,选项列表)
其中第3个参数:“启动时默认的选项”就是新增的参数。在tkinter模块的,不用写这个参数,默认是第1项作为启动时默认选择项。
所以,上面的代码改成下面的代码,就不会出问题了。(就是改一下创建组件代码就行了)
from tkinter import * from tkinter.ttk import * root=Tk() root.title('aying7.com') var=StringVar() tuple_op=('第1单车','第2汽车','第3火车') op1 = OptionMenu(root,var,tuple_op[0],*tuple_op) op1.pack() root.mainloop()
运行图:
经 aying7.com 测试成功。
来源:阿英工作室
本文链接:http://aying7.com/post/3.html