对于我正在制作的Python / Tkinter应用程序,我有两个OptionMenus。我想创建一个" swap"可以交换两者选择的按钮。 OptionMenus都由相同的列表填充。
我们只是说这个例子的列表是国家的,第一个OptionMenu有"德国"选择,而第二个OptionMenu有"荷兰"选择。该功能应该让第一个OptionMenu将它的选择改为"荷兰"第二个是"德国"。
相关代码片段:
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")
所以是的,我需要创建一个函数来交换两个OptionMenus中设置的内容" convertFrom"和" convertTo"。尝试了几件事但很少工作。任何帮助将不胜感激。
谢谢, 贾罗德
答案 0 :(得分:1)
我认为最好的选择是创建一个辅助功能来进行交换,一个基本的例子就是
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()
请注意,您的变量可以通过函数
访问