在Python Tkinter中,如何将OptionMenu设置为比最长项短的固定大小?
听起来很简单,我有一个选项菜单,有5个字符的术语和一个很长的术语。选择“长”选项后,窗口会向外延伸,看起来很糟糕。仅当宽度大于最长期限的长度时,设置宽度或sticky=EW才有效 理想情况下,我希望最多显示15个字符,如果更长,则后跟“…”在Python Tkinter中,如何将OptionMenu设置为比最长项短的固定大小?,python,tkinter,optionmenu,Python,Tkinter,Optionmenu,听起来很简单,我有一个选项菜单,有5个字符的术语和一个很长的术语。选择“长”选项后,窗口会向外延伸,看起来很糟糕。仅当宽度大于最长期限的长度时,设置宽度或sticky=EW才有效 理想情况下,我希望最多显示15个字符,如果更长,则后跟“…” 有什么想法吗?谢谢。我认为您正在寻找ttk中更强大的“”(也在标准python中作为对Tk的简单扩展) 选项菜单类似于组合框 例如: from tkinter.ttk import Combobox # python 3 notation combo =
有什么想法吗?谢谢。我认为您正在寻找ttk中更强大的“”(也在标准python中作为对Tk的简单扩展) 选项菜单类似于组合框 例如:
from tkinter.ttk import Combobox # python 3 notation
combo = Combobox(root,values=['a','aa','aaaaa','aaaaaaa'],width=3)
它将简单地切断过长的元素
()
如果你想在截取条目时出现一个漂亮的“…”,我想你最好的选择是
elements = ['a','aa','aaaaaaaa']
simple_values = [ e[:3] + ('...' if len(e) > 3 else '') for e in elements]
combo = Combobox(root,values=simple_values )
如果您需要能够在它们之间进行映射,请在组合框中使用您最喜欢的数据结构或按索引而不是按值进行引用添加每一项时,您是否可以选中:“labels=[label[:15]+'…'”If len(label)>15 els''for labels in labels”?虽然这是一个好主意,但全名仍然非常重要。我不介意下拉菜单一旦被删除,是否会再长一点,只要它不继续调整窗口的大小。但是当选择“项”时,最好是15个字符加上一个省略号。我想我可以使用一个简单的数据结构来存储原始数据缩写,但希望Tkinter可能已经有了一些东西。不过感谢你的建议。这绝对是完美的,非常感谢!我没有尝试Python 3,但我能够轻松地用Python 2示例升级组合框的OptionMenus。