Python-Tkinter中的ttk.OptionMenu组件在选择后第一个选项消失的问题

环境:

系统: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()

效果如下:

选择前

选择后
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容