[英]GUI Programming
When I run my GUI program, I get an error that says in automotive = Automotive(), line 63, has an attribute error that says Automotive has no attribute 'show_choice'. 当我运行GUI程序时,出现一个错误,提示“ automotive = Automotive(),第63行”的属性错误是“ Automotive没有属性'show_choice'”。 But in my program below, it is clearly stated. 但是在下面的程序中,它已明确说明。 Why is it saying this and how can I fix this problem? 为什么这样说,我该如何解决?
Here is the GUI program I have so far (where I'm having trouble): 这是我到目前为止(遇到麻烦的地方)的GUI程序:
def show_choice(self):
self.message = 'You selected:\n'
if self.cb_var1.get() == 1:
self.message = self.message + '1\n'
if self.cb_var2.get() == 1:
self.message = self.message + '2\n'
if self.cb_var3.get() == 1:
self.message = self.message + '3\n'
if self.cb_var4.get() == 1:
self.message = self.message + '4\n'
if self.cb_var5.get() == 1:
self.message = self.message + '5\n'
if self.cb_var6.get() == 1:
self.message = self.message + '6\n'
if self.cb_var7.get() == 1:
self.message = self.message + '7\n'
#Display the message in the info box.
tkinter.messagebox.showinfo('Selection', self.message)
#Create an instance for My Gui class.
automotive = Automotive()
Your method is most probably over indented ie: 您的方法很可能过度缩进,即:
class Automotive():
def __init__(self):
....
def show_choice(self):
self.message = 'You selected:\n'
if self.cb_var1.get() == 1:
self.message = self.message + '1\n'
if self.cb_var2.get() == 1:
self.message = self.message + '2\n'
if self.cb_var3.get() == 1:
self.message = self.message + '3\n'
if self.cb_var4.get() == 1:
self.message = self.message + '4\n'
if self.cb_var5.get() == 1:
self.message = self.message + '5\n'
if self.cb_var6.get() == 1:
self.message = self.message + '6\n'
if self.cb_var7.get() == 1:
self.message = self.message + '7\n'
Or: 要么:
class Automotive():
def __init__(self):
....
def show_choice(self):
self.message = 'You selected:\n'
if self.cb_var1.get() == 1:
self.message = self.message + '1\n'
if self.cb_var2.get() == 1:
self.message = self.message + '2\n'
if self.cb_var3.get() == 1:
self.message = self.message + '3\n'
if self.cb_var4.get() == 1:
self.message = self.message + '4\n'
if self.cb_var5.get() == 1:
self.message = self.message + '5\n'
if self.cb_var6.get() == 1:
self.message = self.message + '6\n'
if self.cb_var7.get() == 1:
self.message = self.message + '7\n'
The def should be at the same indentation as your init def: def应该与init def的缩进相同:
class Automotive():
def __init__(self):
....
def show_choice(self):
self.message = 'You selected:\n'
if self.cb_var1.get() == 1:
self.message = self.message + '1\n'
if self.cb_var2.get() == 1:
self.message = self.message + '2\n'
if self.cb_var3.get() == 1:
self.message = self.message + '3\n'
if self.cb_var4.get() == 1:
self.message = self.message + '4\n'
if self.cb_var5.get() == 1:
self.message = self.message + '5\n'
if self.cb_var6.get() == 1:
self.message = self.message + '6\n'
if self.cb_var7.get() == 1:
self.message = self.message + '7\n'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.