错误的构造函数参数类型,PySide

时间:2014-10-31 09:32:57

标签: python arguments pyside

好吧我无法弄清楚这个问题,我正在尝试修复一些更复杂的东西,突然间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 个答案:

答案 0 :(得分:2)

您正在使用对象类型作为参数调用MainWidget构造函数,而不是MainWindow的构造函数中的对象实例。

你应该:

self.mainWidget = MainWidget(self)

而不是:

self.mainWidget = MainWidget(MainWindow)