【问题标题】:Dynamic OptionMenu or other options in tkinter [duplicate]tkinter 中的动态 OptionMenu 或其他选项 [重复]
【发布时间】:2020-03-16 15:54:33
【问题描述】:

我们正在尝试为我们的人力资源部门制作一个简单的 GUI。我们将 tkinter 与 PyAD 和子进程一起使用。 我正在尝试根据上一个 OptionMenu 中的“选择”创建一个动态 OptionMenu。

例如:"Department" OptionMenu {"Warehouse", "Office", "Shipping"} >>> "Job" OptionMenu 会相应改变 "Warehouse" 被选中 "Job" OptionMenu 会显示 {"Pallet Jack" 、“高举”、“站起来”}。

由于招聘人数最多的部门,我对仓库职位进行了硬编码。

depts = { 'Warehouse','Office','HR','IT','Maintenance'}
dept_var.set('DEPT') # set the default option


jobs = {'Pallet Jack', 'General Labor', 'Sit Down', 'Stand Up', 'Highlift'}
job_var.set('JOB')

popupMenu1 = OptionMenu(mainframe, dept_var, *depts)

popupMenu1.grid(row = 2, column =1)

popupMenu2 = OptionMenu(backframe, job_var, *jobs)

popupMenu2.grid(row = 2, column =1)

【问题讨论】:

    标签: python tkinter pyad


    【解决方案1】:

    您需要在popupMenu1 中添加command 选项,并在此命令函数中对popupMenu2 进行更改,如下所示:

    popupMenu1 = OptionMenu(root, dept_var, *depts, command=change_job_menu)
    

    函数change_job_menu为:

    def change_job_menu(value):
        popupMenu2['menu'].delete(0, END)
    
        if dept_var.get() == 'Warehouse':
            new_menu = {"Pallet Jack", "High Lift", "Stand Up"}
            for i in new_menu:
                popupMenu2['menu'].add_command(label=i, command=tk._setit(job_var, i))
    

    【讨论】:

    • 请接受答案,以便关闭问题
    猜你喜欢
    • 1970-01-01
    • 2016-05-10
    • 2019-07-04
    • 2021-04-29
    • 2013-10-08
    • 2015-09-23
    • 2021-03-09
    • 1970-01-01
    相关资源
    最近更新 更多