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'. 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):
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:
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 technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.