当前位置: 首页 > 知识库问答 >
问题:

对象没有属性列表框

周龙光
2023-03-14

我正在创建词汇表,一个GUI程序来管理未知单词。我得到:

/usr/bin/python3。5/主页/cali/Pycharm项目/词汇表/词汇表。Tkinter回调回溯中的py异常(最近一次调用最后一次):
html" target="_blank">文件“/usr/lib/python3.5/Tkinter/init.py”,第1553行,在调用返回self中。func(*args)文件“/home/cali/PycharmProjects/词汇表/词汇表.py”,第86行,添加项self。列表框。插入(END,self.get_word())AttributeError:“词汇表”对象没有属性“listBox”

进程已完成,退出代码为0

...当我尝试向列表框添加项目时。

以下是我所做的:

#!/usr/bin/env python

# Vocabulary.py
#   GUI program to manage unknown words

from tkinter import *

class Word:

    def __init__(self, wordorphrase, explanation, translation, example):
        self.wordorphrase = wordorphrase
        self.explanation = explanation
        self.translation = translation
        self.example = example

class Vocabulary(Frame):

    def __init__(self, master):
        Frame.__init__(self, master)
        self.master = master
        self.master.resizable(width = False, height = False)
        self.master.title("Vocabulary")
        self.create_widgets()

    def create_widgets(self):

        lblWordsOrPhrases = Label(self.master, text = 'Words or Phrases:')
        lblWordsOrPhrases.grid(row = 0, column = 0)

        lblWordOrPhrase = Label(self.master, text = 'Word or phrase:')
        lblWordOrPhrase.grid(row = 0, column = 1, sticky = W)

        listBox = Listbox(self.master,
                          height = 34,
                          width = 30)
        listBox.grid(row = 1, column = 0, rowspan = 7)

        txt_WordOrPhrase = Text(self.master,
                                height = 1,
                                width = 40)
        txt_WordOrPhrase.grid(row = 1, column = 1, sticky = N)

        lblExplanation = Label(self.master, text = 'Explanation:')
        lblExplanation.grid(row = 2, column = 1, sticky = W)

        txt_Explanation = Text(self.master,
                               height = 10,
                               width = 40)
        txt_Explanation.grid(row = 3, column = 1, sticky = N)

        lblTranslation = Label(self.master, text = 'Translation:')
        lblTranslation.grid(row = 4, column = 1, sticky = W)

        txt_Explanation = Text(self.master,
                               height = 10,
                               width = 40)
        txt_Explanation.grid(row = 5, column = 1, sticky = N)


        lblExamples = Label(self.master, text = 'Example(s):')
        lblExamples.grid(row = 6, column = 1, sticky = W)

        txt_Explanation = Text(self.master,
                               height = 10,
                               width = 40)
        txt_Explanation.grid(row = 7, column = 1, sticky = S)

        btn_Add = Button(self.master,
                         text = 'Add',
                         command = self.add_item)
        btn_Add.grid(row = 8, column = 0, sticky = W)

    def get_word(self):
        return self.txt_WordOrPhrase.get('1.0', '1.0 lineend')

    def get_explanation(self):
        return self.txt_Explanation.get('1.0', '1.0 lineend')

    def get_translation(self):
        return self.txt_Translation.get('1.0', '1.0 lineend')

    def get_example(self):
        return self.txt_Example.get('1.0', '1.0 lineend')

    def add_item(self):
        self.listBox.insert(END, self.get_word())

def main():
    root = Tk()
    Vocabulary(root)
    root.mainloop()

if __name__ == '__main__':
    main()

我正在使用Python 3.5。

共有1个答案

鄢飞鸾
2023-03-14

listboxcreate_widgets的本地变量,因为它不是用自己设置的。为了使变量在实例范围内可用,您需要将其包含在Self中。

create_widgets中的行更改为self。listBox=listBox(self.master,高度=34,宽度=30)并将每个对listBox的引用更改为self。列表框以应用此更改。

您可能需要在__init__()中定义self.listBox,因为它可能有助于跟踪实例变量。

 类似资料:
  • 当我尝试运行代码时,select元素出现问题。它会给我一个错误 就像我没有任何选择元素一样。是因为它没有关注弹出窗口吗?我做错了什么? MyCode.py select.py中的错误: 例外情况:

  • 问题内容: 如何创建一个数组到numpy数组? 我收到错误消息 所以,我想我需要将X转换为numpy数组吗? 问题答案: 使用在使用属性。 NOTE 为给定数组返回3个项目的元组;加薪。

  • 问题内容: 我正在尝试读取文件,并用逗号在每行中拆分一个单元格,然后仅显示包含有关纬度和经度信息的第一和第二个单元格。这是文件: 时间, 纬度,经度 ,类型2015-03-20T10:20:35.890Z, 38.8221664,-122.7649994 ,地震 2015-03-20T10 :18:13.070Z, 33.2073333,-116.6891667 ,地震 2015-03-20T10

  • 我试图分裂链接的图像是什么错在我的代码

  • 我在Jupyter Notebook中运行Keras神经网络模型(Python 3.6) 我得到以下错误 属性错误:列表对象没有属性ndim 从K调用. fi()方法后eras.model 我检查了Keras的requirements.txt文件(在Anaconda3中),Numpy、smpy和六个模块版本都是最新的。 什么可以解释这个属性错误? 完整的错误消息如下(似乎与Numpy有些关联):

  • 有人能帮我吗,我一直在试着运行下面的脚本 但却发生了这样的错误 下面是完整的脚本