0

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

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

由于该部门的雇员最多,我对仓库职位进行了硬编码。

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)
4

1 回答 1

1

您需要在此命令函数中添加一个command选项popupMenu1并对其进行更改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))
于 2020-03-16T16:10:33.930 回答