tkinter:控制OptionMenu显示长选择的方式

时间:2013-11-05 03:11:44

标签: python tkinter optionmenu

我有一个OptionMenu可以从可以非常长的字符串列表中进行选择。我不希望窗口一直调整大小,所以我将OptionMenu宽度修改为可以完全包含大部分选项的东西。

我遇到的问题是,当选择了一个非常长的选项时,按钮中的居中,并且杠杆条的东西(无论是什么)被绘制在最后几个字母(看起来很乱)。我宁愿让它左对齐,因为理解不适合的字符串的最好机会是从头开始阅读它,而不是在中间的某个地方。

有没有办法覆盖它的绘制方式? OptionMenu实际上没有任何选项。理想情况下,我想截断更长的字符串并附加elipses(...)来表示它不适合,但至少让它左对齐将是一个很大的改进。

看起来它是建立在某种按钮之上的;有没有办法到达那个按钮,所以我可以配置它?

如果有人想要确切了解OptionMenu如何处理长选择(python 2.6),这是一个有效的例子......

root = Tk()

body = Frame(root)
body.pack()

chosen = StringVar( root)
om = OptionMenu( body, chosen, 'short option', 'this is anything but a short option, and wordy to boot!')
om.config( width=10)
om.pack()

root.mainloop()

1 个答案:

答案 0 :(得分:0)

如果你能提供代码,那将是一个很大的帮助 无论如何,如果您使用网格来对齐 OptionMenu ,那么您可以使用不同的列或增加columnspan,甚至可以使用sticky来对齐它。