2013-11-05 39 views
0

我有一个OptionMenu可以选择什么可以是很长的字符串。我不希望窗口随时调整大小,所以我将OptionMenu宽度固定为可以完全包含大部分选项的内容。tkinter:控制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() 

回答

0

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

+0

它与调整大小或放置小部件无关,它完全关于如何在按钮上绘制所选项目。发布的代码可以运行以查看它的功能。 –

+0

然后你可以在'om.config'中使用'wraplength'。它会显示整个文本,但是会显示多行。 – Gogo

相关问题