首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python交换OptionMenu选择

Python交换OptionMenu选择
EN

Stack Overflow用户
提问于 2015-07-02 11:06:30
回答 1查看 116关注 0票数 1

对于我正在开发的Python/Tkinter应用程序,我有两个OptionMenus。我想要创建一个“交换”按钮,以交换两者的选择。两个OptionMenus都由相同的列表填充。

让我们简单地说,对于这个例子,列表是国家的,第一个OptionMenu选择了“德国”,而第二个OptionMenu选择了“荷兰”。该函数应使第一个OptionMenu将其选择改为“荷兰”,第二个改为“德国”。

相关代码片段:

代码语言:javascript
复制
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”中设置的内容。试过几件事但没什么效果。任何帮助都将不胜感激。

谢谢,贾罗德

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-02 11:26:17

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

代码语言:javascript
复制
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()

只是要小心您的变量可以从您的函数中访问。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31182854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档