![](/img/trans.png)
[英]Tkinter OptionMenu: How to configure font size of drop down list?
[英]Python, Tk and OptionMenu: how to sort a drop down list?
我想用tk和OptionMenu制作一个下拉列表。 我想向用户显示一个字符串(“ 10 us”,“ 40 us” ...)并返回一个数字(0、1 ...),这是我发送给变量的参数。 它运作良好,但未排序。 我想像变量“ lst1”一样对列表进行排序。
它应该是:
80我们
lst1 = {"10 us": 0, "20 us": 1, "40 us": 2, "80 us": 3, "160 us": 4, "320 us": 5, "640 us": 6, "1.28 ms": 7, "2.56 ms": 8, "5.12 ms": 9, "10.24 ms": 10} var_tc = StringVar() var_tc.set("40 us") list_tc = OptionMenu(frame, var_tc, *lst1.keys()) list_tc.config(takefocus=1) list_tc.grid(row=10, column=1, padx=2, pady=10) param.tc = lst1[var_tc.get()]
请问你能帮帮我吗? :)
问题是您将字典用作列表,而字典没有任何顺序概念。 有两种方法可以做到 两者都很简单。
您不必进行太多更改,仅当您传入lst1.keys()
,而是传入sorted(lst1.keys())
,因为keys()
返回一个列表,您可以给出其中的一个排序列表。
python标准库之一是collections
,其中包含许多用途各异的容器。 其中之一是OrderedDict
,这是一个字典,用于保持您输入内容的顺序。 您可以将其from collections import OrderedDict
,并将其初始化为任何其他对象lst1 = OrderedDict([("10us",0), ("20us",1), ...])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.