繁体   English   中英

GUI编程

[英]GUI Programming

当我运行GUI程序时,出现一个错误,提示“ automotive = Automotive(),第63行”的属性错误是“ Automotive没有属性'show_choice'”。 但是在下面的程序中,它已明确说明。 为什么这样说,我该如何解决?

这是我到目前为止(遇到麻烦的地方)的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()

您的方法很可能过度缩进,即:

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'

要么:

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'

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM