PySide构造函数参数类型错误

1 投票
1 回答
4116 浏览
提问于 2025-04-30 20:23

我遇到了一个问题,正在尝试解决一个更复杂的事情,结果突然Python出现了这个:

class MainWidget(QWidget):

    def __init__(self, parent=None):            
        super(MainWidget,self).__init__(parent)
        self.initUI()

...
class MainWindow(QMainWindow):   

    def __init__(self, parent=None):        
        super(MainWindow, self).__init__(parent)        
        self.mainWidget = MainWidget(MainWindow)

而我的开发环境(IDE)显示的是:

File "/home/maze/Develop/StartApp/startapp.py", line 47, in __init__
    super(MainWidget,self).__init__(parent)
TypeError: 'PySide.QtGui.QWidget' called with wrong argument types:
  PySide.QtGui.QWidget(Shiboken.ObjectType)
Supported signatures:
  PySide.QtGui.QWidget(PySide.QtGui.QWidget = None, PySide.QtCore.Qt.WindowFlags = 0)

我记得之前是可以正常工作的……你能告诉我这是怎么回事吗?谢谢你的时间。

暂无标签

1 个回答

2

你在调用MainWindow的构造函数时,给MainWidget的构造函数传了一个对象类型,而不是一个对象实例。

你应该这样做:

self.mainWidget = MainWidget(self)

而不是这样:

self.mainWidget = MainWidget(MainWindow)

撰写回答