Python 3.3: tkinter.ttk combobox获取当前选择值时出错
我刚开始学Python,但在使用下拉框(combobox)时遇到了一些问题。
我查了很多论坛,但没有找到解决我在下拉框中遇到的错误的方法。我收到的错误信息是:
“menuItem1 = self.cmbBxMen1.get() AttributeError: 'NoneType' object has no attribute 'get'”
我设置了根窗口和框架,类名是Application,而导致错误的方法和调用以及放置控件的方法在同一个类里,但在不同的方法中。按钮的命令属性设置为使用Add_To_Menu方法,这个方法用来获取在下拉框中选择的值。代码如下:
def __init__(self, master):
super(Application, self).__init__(master)
self.grid()
self.create_widgets()
def create_widgets(self):
data = Application.data
self.cmbBxMen1 = Combobox(self, values = data, width = 60).grid(row=0, column=1, padx = 4, pady = 20)
self.btnAdMen = Button(self, text = "Add to Menu", command = self.Add_To_Menu).grid(row=0, column=9, pady = 20, sticky = W)
def Add_To_Menu(self):
menuItem1 = self.cmbBxMen1.get()
有人能告诉我我哪里做错了吗,为什么会出现这个错误?
1 个回答
1
问题在于,widget.grid()
实际上在把这个小部件放到布局里后并没有返回这个小部件,而是返回了 None
。你应该单独调用 .grid()
,按钮也是一样。
self.cmbBxMen1 = Combobox(self, values = data, width = 60)
self.cmbBxMen1.grid(row=0, column=1, padx = 4, pady = 20)