我在使用python 2.7在Windows下创建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
关键字,并尝试了网格布局。他们都没有让我完全看到向下箭头。
感谢您就此问题发表的有用评论。
答案 0 :(得分:1)
在Windows 7上也发生了同样的事情,但在XP上却没有,使用Python 2.7。我找到了一个bug report,其状态应该在Tk 8.5.8中修复。在Python中更新Tcl / Tk似乎是very complicated但
答案 1 :(得分:1)
fix in question适用于tk库中提供的其中一个脚本文件。您可以修改vistaTheme.tcl的本地副本以匹配此项。在以后的版本中,我认为它实际上确实从系统中正确地请求了大小,但是如果你被迫使用旧版本的Tk,这应该可行。
您可以使用以下方式找到路径:
from Tkinter import Tk
tk = Tk()
tk.eval("set tk_library")
然后编辑/ttk/vistaTheme.tcl文件。我在这里得到了python3,似乎已经有了Tk 8.6.1,所以这已经修好了。