Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt5:TypeError:';顶级小部件的基类错误';_Python_Python 3.x_Pyqt_Pyqt5 - Fatal编程技术网

Python PyQt5:TypeError:';顶级小部件的基类错误';

Python PyQt5:TypeError:';顶级小部件的基类错误';,python,python-3.x,pyqt,pyqt5,Python,Python 3.x,Pyqt,Pyqt5,我已经使用QtDesigner创建了to.ui文件,并将它们加载到两个单独的窗口中,如下所示 class MainWindow(QMainWindow): def __init__(self, parent=None): super().__init__() # Set up the user interface from Designer. uic.loadUi("interface/UI/main.ui", self)

我已经使用QtDesigner创建了to.ui文件,并将它们加载到两个单独的窗口中,如下所示

class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super().__init__()

        # Set up the user interface from Designer.
        uic.loadUi("interface/UI/main.ui", self)

        # Connect up the buttons
        self.button_classes.clicked.connect(self.open_classes)

        self.w = []

    def open_classes(self):
        self.w.append(PopupWindow(self))
        self.w[-1].show()


class PopupWindow(QMainWindow):
    def __init__(self, parent=None):
        super().__init__()

        # Set up the user interface from Designer.
        uic.loadUi("interface/UI/newclass.ui", self)
当我在调试模式下以PyCharm运行代码时,会发生以下错误,但是当代码正常运行时不会发生这种情况

TypeError: ('Wrong base class of toplevel widget', (<class 'controllers.GUI.PopupWindow'>, 'QDialog'))
TypeError:(“顶级小部件的基类错误”,(,“QDialog”))

您在消息
中有
QDialog
“顶级小部件的基类错误”(,“QDialog”)
所以我认为它希望
QDialog
创建第二个窗口,但您在
类PopupWindow(QMainWindow)中使用
QMainWindow

您在消息
中有
QDialog
“顶级小部件的基类错误”(,“QDialog”)
所以我认为它希望
QDialog
创建第二个窗口,但您在
类弹出窗口(QMainWindow)中使用
QMainWindow

我在使用
QDialog
时遇到了类似的问题,但将其更改为
QMainWindow
,它就工作了。

我在使用
QDialog
时遇到了类似的问题,但将其更改为
QMainWindow
,它就工作了。

在console/terminal/cmd.exe/powershell中运行时,是否会收到错误消息?添加有问题的完整错误消息。@furas当我只是正常运行代码时,没有错误,但是如果我在PyCharm的调试模式下运行代码,我会得到一个我添加到问题中的类型错误。您有消息
“顶级小部件的基类错误”,(,“QDialog”))
所以我想它希望您使用
QDialog
来创建第二个窗口,但是您在
类弹出窗口(QMainWindow)中使用
QMainWindow
@furas非常感谢您的帮助,将
类弹出窗口(QMainWindow)
更改为
类弹出窗口(QDialog)
解决了问题。我相信这是因为我在QtDesigner中选择了“带按钮的对话框”模板。如果您想回答问题,我已将问题更改为正确反映问题在console/terminal/cmd.exe/powershell中运行时是否收到错误消息?添加有问题的完整错误消息。@furas当我只是正常运行代码时,没有错误,但是如果我在PyCharm的调试模式下运行代码,我会得到一个我添加到问题中的类型错误。您有消息
“顶级小部件的基类错误”,(,“QDialog”))
所以我想它希望您使用
QDialog
来创建第二个窗口,但是您在
类弹出窗口(QMainWindow)中使用
QMainWindow
@furas非常感谢您的帮助,将
类弹出窗口(QMainWindow)
更改为
类弹出窗口(QDialog)
解决了问题。我相信这是因为我在QtDesigner中选择了“带按钮的对话框”模板。如果你愿意回答的话,我已经修改了这个问题,以恰当地反映这个问题