ttk OptionMenu不适合其边界框
我在Windows上用Python 2.7创建一个Tkinter应用时遇到了问题。简单来说,就是当我创建一个下拉菜单(OptionMenu)时,它右上角的部分(那里有一个向下的箭头,点击后会有反应)被截断了。
下面的代码可以重现这个问题:
from Tkinter import Tk, StringVar
from ttk import OptionMenu
root = Tk()
options = list('ABC')
var = StringVar(value='A')
om = OptionMenu(root, var, var.get(), *options)
om.config(width=25)
om.pack()
root.mainloop()
在我的电脑上,结果看起来是这样的:
我尝试过调整padx
和ipadx
这两个参数,也试过用网格布局(grid layout)。但是没有一个方法能让我完整看到那个向下的箭头。
我很感激大家对这个问题的帮助和建议。
2 个回答
1
这里提到的修复内容是针对tk库中的一个脚本文件的。你可以修改自己电脑上的vistaTheme.tcl文件,让它和这个修复一致。如果你使用的是较旧版本的Tk,可能会遇到问题,但在更新的版本中,系统应该能正确请求所需的大小。
你可以通过以下方式找到文件路径:
from Tkinter import Tk
tk = Tk()
tk.eval("set tk_library")
然后编辑/ttk/vistaTheme.tcl文件。我这里用的是python3,似乎自带了Tk 8.6.1,所以这个问题已经解决了。