Python PyQt5:创建具有类的窗口

Python PyQt5:创建具有类的窗口,python,class,pyqt,pyqt5,Python,Class,Pyqt,Pyqt5,我构建了一个类似于这样的PyQt5应用程序(我知道我有很多导入,我正在学习,所以我现在想要完全的自由): 我希望about_func()函数调用about()类,这样我就可以打开一个独立于由Menu()类创建的主窗口的窗口 此代码引发错误: TypeError: QMainWindow(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()): argument 1 has un

我构建了一个类似于这样的PyQt5应用程序(我知道我有很多导入,我正在学习,所以我现在想要完全的自由):

我希望about_func()函数调用about()类,这样我就可以打开一个独立于由Menu()类创建的主窗口的窗口

此代码引发错误:

TypeError: QMainWindow(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()): argument 1 has unexpected type 'sip.wrappertype'
参考第9行中的
super()

我如何以有效的方式实现这一点?请随意批评我的代码的任何方面。


(编辑以澄清问题)

从您的代码中不太清楚您是在使用Python 2还是3,总之,super的基本语法是:

super(yourClass, instance).method(args)
因此,在你的情况下,他们都错了:-)第一个应该是:

class Menu(QMainWindow):
    def __init__(self, parent=None):
        super(Menu, self).__init__(parent)
此外,在Python3中,super()的参数可以省略,因此第二个示例可以是:

class About(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

仔细阅读这本书。我知道这是一个很长的页面,但它包含了Python的一些基础知识,学习/理解它们几乎是必须的。

谢谢。我在代码(Python3.5,顺便说一句)中实现了这一点,我收到了另一个类型错误<代码>类型错误:QMainWindow(父:QWidget=None,flags:Union[Qt.WindowFlags,Qt.WindowType]=Qt.WindowFlags()):参数1具有意外的类型“sip.wrappertype”
我需要知道您用于init的参数…您当前的代码有几个输入错误:将
def\uu init\uuuuuuuuuuu(self)
更改为
def\uu init\uuuuuuuuuuuuuuuuuu(self):如果不是QApplication.instance()
如果不是QApplication.instance():
从PyQt5.QWidgets导入*
从PyQt5.qtwidts导入*
并将
定义初始化(self):
更改为
定义初始化(self,parent=None):
在About类中,在后一类中使用parent在
超级()中__(家长)
但您从未声明过。在这些更改之后,您的代码工作正常,我不知道您从哪里得到您指出的错误。
class About(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)