【问题标题】:PyQt5 Attribute Error: 'GUI' object has no attribute 'setLayout'PyQt5 属性错误:“GUI”对象没有属性“setLayout”
【发布时间】:2016-09-23 18:41:07
【问题描述】:

运行代码时似乎出现属性错误。具体来说,我遇到的错误是:

AttributeError: 'GUI' object has no attribute 'setLayout'

我目前使用的代码:

class GUI(object):
    def __init__(self):
        super(GUI,self).__init__()
        self.initUI()

    def initUI(self):
        review = QtWidgets.QLabel('Review')
        reviewEdit = QtWidgets.QTextEdit()
        grid = QtWidgets.QGridLayout()

        grid.addWidget(review, 3, 0)
        grid.addWidget(reviewEdit, 3, 1, 5, 1)
        self.setLayout(grid)
        self.setGeometry(300,300,350,300)
        self.setWindowTitle('Sentiment Analysis')
        self.show()

【问题讨论】:

  • 这是我导入模块的方式: from PyQt5 import QtGui,QtWidgets,QtCore
  • 您的GUI 类继承object。如果我错了,请纠正我,但您正试图在selfobject 上致电setLayout。您不需要MainWindow 或其他Qt 父/小部件吗?

标签: python python-3.x pyqt5


【解决方案1】:

您收到属性错误,因为您的类和object 都没有定义您尝试通过self 访问的方法。您需要从定义它们的Qt 类继承这些。例如,继承自QWidget

from PyQt5 import QtWidgets

class GUI(QtWidgets.QWidget):
     ...

将为您的班级提供这些。为您的用例替换适当的 PyQt 基类以获取功能。

【讨论】:

  • 成功了!感谢您的帮助
猜你喜欢
  • 2017-10-06
  • 2022-01-24
  • 2023-03-15
  • 2014-05-14
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
  • 2019-06-16
相关资源
最近更新 更多