I_d*_*hon 2 python tkinter python-3.x
我正在尝试从OptionMenupython3.3中的tkinter小部件获取列表变量.
小部件是这样写的;
list1 = ['One', 'Two', 'Three']
var1 = tkinter.StringVar()
var1.set(list1[0])
window = tkinter.Tk()
my_opmenu = tkinter.OptionMenu(window, var1, *list1)
my_opmenu.grid()
window.mainloop()
Run Code Online (Sandbox Code Playgroud)
我知道您可以使用该cget()方法来检索窗口小部件的配置,我认为在OptionMenu窗口小部件的上下文中my_opmenu是我需要调用的设置.但是当我打电话给它时,我会得到一些看起来像记忆位置的东西.
print(my_opmenu.cget('menu'))
>>.24620080.24620272.25126224.25126352.25126736.menu
Run Code Online (Sandbox Code Playgroud)
显然,内存位置不是恒定的.有什么方法可以让人类的价值回归(即list1).
您无法获取列表变量,因为窗口小部件对列表变量一无所知.创建窗口小部件时,您将从列表窗口小部件中提供值,但不是列表本身.
该menu属性返回一个Menu类的实例.它也不会对你的清单有任何了解.
如果要将列表与窗口小部件关联,请将其设置为属性:
my_opmenu.list = list1
Run Code Online (Sandbox Code Playgroud)
之后,当您想要列表时,您可以执行以下操作:
print "my list:", my_opmenu.list
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3339 次 |
| 最近记录: |