我有四个OptionMenu,每个OptionMenu都填充了一个条目列表(每个菜单都一样)。
from tkinter import *
def selected (event):
print (clicked.get())
window = Tk()
entries = ["a", "b", "c", "d"]
for i in range (4):
window.rowconfigure (i, minsize = 5)
a_frame = Frame (master = window)
a_frame.grid (row = i, column = 0, padx = 1, pady = 1)
clicked = StringVar()
clicked.set (entries[0])
a_menu = OptionMenu (a_frame, clicked, *entries, command = selected)
a_menu.pack()
window.mainloop()我试图访问从每个OptionMenu中选择的值,但只打印底部OptionMenu中的值。当我从其他下拉菜单中选择一些值时,操作是“检测到的”,但只打印底部OptionMenu中的值。如果你尝试运行上面的代码,你会很容易理解我的意思。如何访问从每个OptionMenu中选择的每个值?首先要感谢大家!
发布于 2020-11-27 04:50:21
OptionMenu构造函数:
OptionMenu(父级,变量,choice1,choice2,...)
from tkinter import Tk, StringVar, OptionMenu
def callback(arg):
print(arg)
root = Tk()
option = StringVar()
op = OptionMenu(root, option, 'a', 'b', 'c', 'd', command=callback)
op.grid()
option.set('a')
root.mainloop()这是你可以开始的基础。当调用回调函数时,它将您的选择作为参数传递,并且只将参数打印到控制台。
希望你现在已经有了一个基本的了解。
因此,在本例中,您需要打印参数,而不是"print (clicked.get())“
试试这个:
from tkinter import *
def selected (event):
print (event)
window = Tk()
entries = ["a", "b", "c", "d"]
for i in range (4):
window.rowconfigure (i, minsize = 5)
a_frame = Frame (master = window)
a_frame.grid (row = i, column = 0, padx = 1, pady = 1)
clicked = StringVar()
clicked.set (entries[0])
a_menu = OptionMenu (a_frame, clicked, *entries, command = selected)
a_menu.pack()
window.mainloop()https://stackoverflow.com/questions/65027966
复制相似问题