首页
学习
活动
专区
圈层
工具
发布

GUI编程
EN

Stack Overflow用户
提问于 2015-07-04 15:32:57
回答 1查看 216关注 0票数 1

当我运行我的GUI程序时,我会得到一个错误,在automotive = Automotive()中,第63行中,有一个属性错误,它说Automotive没有属性'show_choice‘。但在我的程序下面,这是明确的说明。为什么要这样说,我怎样才能解决这个问题?

下面是我到目前为止使用的GUI程序(在这里我遇到了麻烦):

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-04 15:41:02

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

代码语言:javascript
复制
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'

或者:

代码语言:javascript
复制
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位于相同的缩进位置:

代码语言:javascript
复制
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'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31222321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档