Python Tkinter交换选项菜单选项

2024-10-01 09:23:52 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我正在制作的Python/Tkinter应用程序,我有两个选项menus。我想创建一个“交换”按钮来交换两个选项。两个OptionMenus都由相同的列表填充。你知道吗

让我们假设这个例子的列表是国家,第一个选项菜单选择了“德国”,而第二个选项菜单选择了“荷兰”。该函数应使第一个选项菜单将其选择更改为“荷兰”,第二个更改为“德国”。你知道吗

相关代码片段:

unit1 = StringVar()
unit2 = StringVar()
unit1_entry = ttk.Entry(mainframe, width=7, textvariable=unit1)
unit1_entry.grid(column=1, row=1, sticky=(W, E))
unit2_label = ttk.Label(mainframe, textvariable=unit2)
unit2_label.grid(column=1, row=2, sticky=(W, E))
ttk.Button(mainframe, text="Swap" #command needed here#).grid(column=4, row=2, sticky=W)

#FIRST MEASUREMENT
convertFromUnits.set(LENGTH[0])
convertFrom = OptionMenu(mainframe, convertFromUnits, *LENGTH)
convertFrom.grid(column=2, row=1)
convertFrom.config(width=16, justify="center")
#SECOND MEASUREMENT
convertToUnits.set(LENGTH[1])
convertTo = OptionMenu(mainframe, convertToUnits, *LENGTH)
convertTo.grid(column=2, row=2)
convertTo.config(width=16, justify="center")

所以我需要创建一个函数来交换两个选项“convertFrom”和“convertTo”中的设置。尝试了几件事,但没什么效果。任何帮助都将不胜感激。你知道吗

谢谢你, 贾罗德


Tags: 列表选项菜单columnwidthlengthgridrow
1条回答
网友
1楼 · 发布于 2024-10-01 09:23:52

我认为最好的选择是创建一个辅助函数来进行交换,一个基本的例子是

from Tkinter import *

def swap():
    temp=variable1.get()
    variable1.set(variable2.get())
    variable2.set(temp)

master = Tk()

variable1 = StringVar(master)
variable1.set("one") # default value

variable2 = StringVar(master)
variable2.set("one") # default value

w = OptionMenu(master, variable1, "one", "two", "three")
w.pack()

w2 = OptionMenu(master, variable2, "one", "two", "three")
w2.pack()

but = Button(master, text="Swap", command=swap)
but.pack()

mainloop()

只是要小心,你的变量可以从你的函数访问

相关问题 更多 >