【发布时间】:2019-10-10 02:03:05
【问题描述】:
我想在 tkinter 中制作一个单位转换器。我做了两个下拉菜单;第一个允许用户选择他们想要转换的单位,第二个允许他们选择他们想要转换的单位。我想在第二个菜单中选择一个选项后禁用所有在第二个菜单中没有意义的选项(如果他们想转换公斤,在第二个菜单中选择厘米是没有意义的)
我尝试使用 StringVar() 来更改菜单的状态,但它不起作用。我不知道下一步该做什么。我一直在使用 Tutorialspoint 的文档,但我找不到任何有用的东西(第一次使用 tkinter)。
import tkinter as tk
root = tk.Tk()
root.geometry('600x600')
my_var = tk.StringVar()
my_var.set('active')
unit_1 = tk.Menubutton(root,text='This is the first menu button',bg='white',activebackground='#2E64FE',activeforeground='#FFFFFF')
menu_1 = tk.Menu(unit_1)
unit_1.config(menu=menu_1)
menu_1.add_command(label='Inches',command= lambda: my_var.set('disabled') )
menu_1.add_command(label='Kilograms')
unit_2 = tk.Menubutton(root,text='This is the second menu button',bg='white',activebackground='#2E64FE',activeforeground='#FFFFFF')
menu_2 = tk.Menu(unit_2)
unit_2.config(menu=menu_2)
menu_2.add_command(label='Centimeters')
menu_2.add_command(label='Pounds',state= my_var.get())
unit_1.place(relx=0.03,rely=0.08,relheight=0.04,relwidth=0.45)
unit_2.place(relx=0.52,rely=0.08,relheight=0.04,relwidth=0.45)
root.mainloop()
在这里,我试图在第一个菜单中设置“英寸”按钮以禁用第二个菜单中的“磅”按钮,但是当我单击“英寸”时,“磅”没有任何反应。
【问题讨论】:
标签: python-3.x tkinter