Tkinter OptionMenu空字典

2024-03-29 12:15:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个OptionMenu小部件,它通常填充一个列表(比如课程列表)。在

    self.var_course = StringVar(self.add_window)
    if len(courses) > 0:
        self.var_course.set(self.courses.keys()[0])
    course_drop = OptionMenu(self.add_window, self.var_course, *self.courses).\
        grid(row=0, column=1)
    Button(self.add_window, text="New", height=1, width=1).\
        grid(row=0, column=2)  

有时,此列表将为空,因为用户尚未添加任何类。这将导致创建“当然”删除时出错。在

^{pr2}$

当字典中有值时,代码可以正常工作,但是当它为空时,我得到了上面的错误。我想那本空字典(自学课程)不被视为变量,因此传递的数量不够。我怎么才能避开这个?在


Tags: selfadd列表字典部件varcolumnwindow
1条回答
网友
1楼 · 发布于 2024-03-29 12:15:18
try:
    course_drop = OptionMenu(self.add_window, self.var_course,
                  *self.courses).grid(row=0, column=1)
except TypeError:
    pass # display an error, prompt for something that will allow a retry, whatever

另一个选择:

^{pr2}$

最后,请记住,mywidget = Widget(option=value).grid()grid()return值分配给mywidget,即None。您应该grid()在小部件的赋值之后在一个单独的语句中。

相关问题 更多 >