PyQt5 потерпел крах python, когда я добавил виджет во второе окно - PullRequest
0 голосов
/ 12 апреля 2020

, когда я пытаюсь добавить виджет во второе окно, происходит сбой

    Class MainWindow(Qt.QMainWindow):
        def __init__(self):
            self.setWindowTitle("Window 1")

            self.Button = Qt.QPushButton("to second")
            self.Button.clicked.connect(self.opensecond)
        def opensecond(self):
            self.close()
            self.secondpage = Second()

   Class Second(Qt.QMainWindow):
       def __init__():
           self.setWindowTitle("Window 2")
           self.Layout = Qt.QGridLayout()
           self.setLayout = Qt.QGridLayout()

           #self.IsLabel = Qt.QLabel("This should show")

Вышеупомянутый код работает нормально. Однако, когда я раскомментирую self.IsLabel, это окно завершило работу приложения. Ниже приведен отчет о проблеме Apple (у меня есть полный документ, если требуется)

Сбой потока: 0 Очередь отправки: com.apple.main-thread

Тип исключения: EXC_CRA SH (SIGABRT)

Коды исключений: 0x0000000000000000, 0x0000000000000000

Примечание об исключении: EXC_CORPSE_NOTIFY

(я поделился только тем кодом, который мне показался уместным, если вы чувствуете, что чего-то не хватает, я могу предоставить больше )

Заранее большое спасибо!

1 Ответ

0 голосов
/ 13 апреля 2020

этот работает на Python3 (3.7.5) Pyqt5 (5.12.3), ваш код выдал много ошибок на моей установке

попробуйте и посмотрите, как работает ваша система

#!/usr/bin/env python3
# -*- coding: utf-8 -*-


import sys
from PyQt5 import QtWidgets

class MainWindow(QtWidgets.QMainWindow):
        def __init__(self):
            super(MainWindow, self).__init__()
            self.setWindowTitle("Window 1")
            Button = QtWidgets.QPushButton("To Second") 
            self.setCentralWidget(Button)
            Button.resize(100,100)
            Button.clicked.connect(self.opensecond)
            self.show()

        def opensecond(self):
            self.close()
            self.secondpage = Second()
            self.secondpage.show()

class Second(QtWidgets.QMainWindow):
       def __init__(self):
           super(Second, self).__init__()
           self.setWindowTitle("Window 2")
           self.resize(506, 312) 
           IsLabel = QtWidgets.QLabel("This should show")
           self.setCentralWidget(IsLabel)
           self.show()


if __name__ == "__main__": 
    app = QtWidgets.QApplication(sys.argv)
    window=MainWindow()
    app.exec_()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...