【问题标题】:Error PyQT5 plainTextEdit, AttributeError, how to fix?错误 PyQT5 qplainTextEdit,AttributeError,如何修复?
【发布时间】:2022-11-12 01:21:50
【问题描述】:

对象中的功能: 文件 ParserWindow.py:

class Parser(object):
    def setupUi(self, ParserWindow):
          # code....
        self.plainTextEdit = QtWidgets.QPlainTextEdit(self.layoutWidget_6)
        self.plainTextEdit.setStyleSheet("font-family: \'Roboto Mono\';\n"
            "font-weight: 600;\n"
            "font-size: 14px;\n"
            "line-height: 24px;\n"
            "\n"
            "letter-spacing: 0.75px;\n"
            "\n"
            "color: #B5B5BD;")
        self.plainTextEdit.setReadOnly(True)
        self.plainTextEdit.setObjectName("plainTextEdit")


  

    def addPlainText(self, text: str):
       self.plainTextEdit.appendPlainText(text)




class ParserWindow(QtWidgets.QMainWindow, Parser):
    def __init__(self, *args, obj=None, **kwargs):
        super(ParserWindow, self).__init__(*args, **kwargs)
        self.setupUi(self)

文件 log.py(用于调试控制台的文件):

from vendor.ParserWindow import Parser

parser = Parser()

def print_error(text: str):
    parser.addPlainText('[ERROR] {}'.format(text))

def print_info(text: str):
    parser.addPlainText('[INFO] {}'.format(text))

def print_warning(text: str):
    parser.addPlainText('[WARNING] {}'.format(text))

但是当我运行它时会出现错误:

File "C:\Users\fazuq\Desktop\project\twitter\vendor\ParserWindow.py", line 581, in addPlainText
    self.plainTextEdit.appendPlainText('{}'.format(text))
AttributeError: 'Parser' object has no attribute 'plainTextEdit'

热修复? 我使用 PyQt5

我想在 log.py 文件中创建一个函数,以便我可以访问其他文件并将文本添加到 PlainEditText

【问题讨论】:

  • 而不是parser = Parser() 尝试parser = ParserWindow()
  • 没有错误,但没有向纯文本添加任何值

标签: python pyqt pyqt5


【解决方案1】:

尝试直接子类化 QMainWindow。然后按照您在问题中的方式保留您的 log.py。我假设您在调用Parser() 之前已经在代码中的某处创建了 QApplication。

class Parser(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent=parent)
        self.setupUi()

    def setupUi(self):
          # code....
        self.plainTextEdit = QtWidgets.QPlainTextEdit(self)
        self.layoutWidget_6.addWidget(self.plainTextEdit)
        self.plainTextEdit.setStyleSheet("font-family: 'Roboto Mono';
"
            "font-weight: 600;
"
            "font-size: 14px;
"
            "line-height: 24px;
"
            "
"
            "letter-spacing: 0.75px;
"
            "
"
            "color: #B5B5BD;")
        self.plainTextEdit.setReadOnly(True)
        self.plainTextEdit.setObjectName("plainTextEdit")

    def addPlainText(self, text: str):
       self.plainTextEdit.appendPlainText(text)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-16
    • 2019-07-11
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 2021-01-14
    相关资源
    最近更新 更多