我正在构建一个程序,我需要过滤掉所有课程模块'不是来自选项菜单中所选技能级别(从上面的选项菜单中选择)。我的想法是创建只有B技能选项的ModuD词典(如果用户选择基础技能等级),然后将其提供给ModuleDDL OptionsMenu,它将显示名称(即' Geology'或' ;油藏工程')但它将返回代码(.ie B11或B12)。
所以我有类似的东西:
class Module:
def __init__(self, code, name, skill, description):
self.code = code
self.name = name
self.skill = skill
self.description = description
class Askill(Module):
A11 = Askill(11, 'Fundamentals', 'A', 'description A11')
class Bskill(Module):
B11 = Bskill(11,'Geology', 'B', 'description B11')
B12 = Bskill(12,'Reservoir Engineering', 'B', 'description B12')
SkillD = dict(Awareness = 'A', \
Foundation = 'B', \
Skill = 'C', \
Advance = 'D')
selectedSkill = StringVar()
############# Create Dropdown list for Skill Level ###########
LabelSkillDDL = Label(root, text="Skill Level").pack(side=TOP, anchor=W)
SkillDDL = OptionMenu(root, selectedSkill, *SkillD.keys(), command=update_text_box)
SkillDDL.pack(side=TOP, anchor=W, padx=10)
SkillDDL.configure(font=(fonttype, fontsize))
########### Create Dropdown list for Module ###########
LabelModuleDDL = Label(root, text="Module").pack(side=TOP, anchor=W)
ModuleDDL = OptionMenu(root, selectedCode, *ModuD.keys(), command=update_text_box)
ModuleDDL.pack(side=TOP, anchor=W, padx=10)
ModuleDDL.configure(font=(fonttype, fontsize))
任何想法如何才能起作用?有没有更好的方法可以看到大气?
非常感谢!