美文网首页生活不易 我用pythonpython自学
Python-Tkinter中的ttk.OptionMenu组件

Python-Tkinter中的ttk.OptionMenu组件

作者: 无聊的IT | 来源:发表于2016-09-06 17:42 被阅读801次

    环境:

    系统:Windows10 x64
      Python:Python 2.7.12
      tkinter:Python自带

    问题说明:

    在tkinter中有两个OptionMenu,一个是tkinter.OptionMenu,另一个是ttk.OptionMenu。
      tkinter.OptionMenu外观丑,有点反人类。



      ttk.OptionMenu美观,但在使用中发现一旦用户选择选项后,第一个选项内容会消失。

    示例:

    import Tkinter as tk
    import ttk
    root=tk.Tk()
    v=tk.StringVar()
    var=['one','two','three']
    v.set(var[0])
    a=ttk.OptionMenu(root,v,*var)
    a.grid()
    root.mainloop()
    

    下面分别是用户选择前和选择后的截图,从选择后的截图上可以看出来,'one'这个选项没有了。


    选择前
    选择后

      不太清楚这是否是tkk.OptionMenu组件的一个BUG,还是我使用的方法不正确。

    问题解决:

    因为选择后只有第一个选项会消失,所以我们只要在代码中将第一个选项设置为一个空字符串就可以解决此问题,而相应的默认选项也要改为第二项:

    import Tkinter as tk
    import ttk
    root=tk.Tk()
    v=tk.StringVar()
    var=['','one','two','three']
    v.set(var[1])
    a=ttk.OptionMenu(root,v,*var)
    a.grid()
    root.mainloop()
    

    效果如下:

    选择前 选择后

    相关文章

      网友评论

        本文标题:Python-Tkinter中的ttk.OptionMenu组件

        本文链接:https://www.haomeiwen.com/subject/eidrettx.html