当前位置:首页 » tkinter » 正文

tkinter.ttk模块下的OptionMenu组件,第一选项永远消失的解决办法

    有朋友发现,在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()

运行图:

202111181126115225255.png

aying7.com 测试成功。

来源:阿英工作室

本文链接:http://aying7.com/post/3.html

tkinter  
    << 上一篇 下一篇 >>

    赞助商链接

    湘公网安备 43011102000200号 - 湘ICP备08100508号