Python Tkinter交换OptionMenu选择

时间:2015-07-02 11:06:31

标签: python tkinter

对于我正在制作的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"。尝试了几件事但很少工作。任何帮助将不胜感激。

谢谢, 贾罗德

1 个答案:

答案 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()

请注意,您的变量可以通过函数

访问