在Python Tkinter中,如何将OptionMenu设置为比最长项更短的固定大小?

时间:2016-03-04 19:31:39

标签: python tkinter optionmenu

听起来很简单,我有一个选项菜单,其中包含5个字符和1个非常长的字符。选择长选项后,窗口会拉伸,看起来很糟糕。设置width或sticky = EW仅在宽度大于最长项的长度时才有效。

理想情况下,我想显示最多15个字符,如果它更长,则显示“...”。

有什么想法吗?感谢。

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找更强大的" Combobox"在ttk中(也在标准python中作为Tk的简单扩展)。

As effbot puts it

  

选项菜单类似于组合框

例如:

from tkinter.ttk import Combobox # python 3 notation
combo = Combobox(root,values=['a','aa','aaaaa','aaaaaaa'],width=3)

它会简单地切断太长的元素

If you're in python 2 it's slightly different to import ttk

如果你想要一个好的" ..."在切断参赛作品时出现,我认为你最好的选择是

elements = ['a','aa','aaaaaaaa']
simple_values = [ e[:3] + ('...' if len(e) > 3 else '') for e in elements]
combo = Combobox(root,values=simple_values )

如果您需要能够在它们之间进行映射,请使用您喜欢的数据结构或通过索引引用而不是组合框中的值