听起来很简单,我有一个选项菜单,其中包含5个字符和1个非常长的字符。选择长选项后,窗口会拉伸,看起来很糟糕。设置width或sticky = EW仅在宽度大于最长项的长度时才有效。
理想情况下,我想显示最多15个字符,如果它更长,则显示“...”。
有什么想法吗?感谢。
答案 0 :(得分:1)
我认为你正在寻找更强大的" Combobox"在ttk中(也在标准python中作为Tk的简单扩展)。
选项菜单类似于组合框
例如:
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 )
如果您需要能够在它们之间进行映射,请使用您喜欢的数据结构或通过索引引用而不是组合框中的值