Не работает переход между окнами в PyQt5
Сделал программу, вставил два окна.
При нажатии по кнопке вылетает
Process finished with exit code -1073740791 (0xC0000409)
main.py:
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow, \
QPushButton, QTextEdit
from PyQt5.QtGui import QPixmap, QIcon
from PyQt5 import QtCore, QtGui, QtWidgets
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.pushButton = None
self.label_2 = None
self.label = None
self.centralwidget = None
self.setWindowTitle("Приложение EpicGames")
self.setWindowIcon(QIcon('resource/img/logo2.png'))
self.setGeometry(525, 162, 1125, 807)
self.setStyleSheet('background-color: rgb(18, 18, 18);')
self.main_text = QLabel(self)
self.main_text.setPixmap(QPixmap("logo.png"))
self.main_text.setScaledContents(True)
self.main_text.setGeometry(80, 60, 41, 51)
self.magazin = QPushButton(self)
self.magazin.setFlat(True)
self.magazin.setGeometry(15, 140, 162, 50)
self.magazin.setStyleSheet("""
QPushButton:hover { background-image: url(resource/img/mag1.jpg) }
QPushButton:!hover { background-image: url(resource/img/mag0.png) }
QPushButton:pressed { background-image: url(resource/img/mag2.jpg) }
""")
self.bibl = QPushButton(self)
self.bibl.setFlat(True)
self.bibl.setGeometry(15, 192, 162, 60)
self.bibl.setStyleSheet("""
QPushButton:hover { background-image: url(resource/img/bibl1.png) }
QPushButton:!hover { background-image: url(resource/img/bibl0.png) }
QPushButton:pressed { background-image: url(resource/img/bibl2.png) }
""")
self.un = QPushButton(self)
self.un.setFlat(True)
self.un.setGeometry(15, 255, 162, 55)
self.un.setStyleSheet("""
QPushButton:hover { background-image: url(resource/img/un1.png) }
QPushButton:!hover { background-image: url(resource/img/un0.png) }
QPushButton:pressed { background-image: url(resource/img/un2.png) }
""")
self.poisk = QTextEdit(self)
self.poisk.setGeometry(210, 60, 181, 31)
self.poisk.setPlaceholderText("Поиск")
self.poisk.setStyleSheet("background-color: rgb(84, 84, 84);\n"
"color: rgb(255, 255, 255);")
self.nov = QLabel(self)
self.nov.setGeometry(470, 70, 61, 16)
self.nov.setStyleSheet("color: rgb(255, 255, 255);")
self.nov.setText("Новости >")
self.ic = QPushButton(self)
self.ic.setFlat(True)
self.ic.setGeometry(1000, 60, 42, 42)
self.ic.setStyleSheet("""
QPushButton:hover { background-image: url(resource/img/ic1.png) }
QPushButton:!hover { background-image: url(resource/img/ic0.png) }
QPushButton:pressed { background-image: url(resource/img/ic2.png) }
""")
self.raspr = QPushButton(self)
self.raspr.setGeometry(220, 140, 672, 376)
self.raspr.setStyleSheet("border-image: url(resource/img/123.png) stretch;")
self.de = QPushButton(self)
self.de.setGeometry(920, 140, 167, 50)
self.de.setFlat(True)
self.de.setStyleSheet("""
QPushButton:hover { background-image: url(resource/img/iiic1.png) }
QPushButton:!hover { background-image: url(resource/img/iiic0.png) }
QPushButton:pressed { background-image: url(resource/img/iiic1.png) }
""")
self.gov = QPushButton(self)
self.gov.setGeometry(220, 500, 866, 287)
self.gov.setFlat(True)
self.gov.setStyleSheet("border-image: url(resource/img/gov.png) stretch;")
self.gov.clicked.connect(self.err)
def err(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1125, 807)
MainWindow.setWindowIcon(QIcon('resource/img/logo2.png'))
MainWindow.setStyleSheet("background-color: rgb(18, 18, 18);")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(350, 180, 441, 91))
self.label.setText("")
self.label.setPixmap(QtGui.QPixmap("ssn/resource/img/err.png"))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(80, 60, 41, 51))
self.label_2.setText("")
self.label_2.setPixmap(QtGui.QPixmap("ssn/resource/img/logo.png"))
self.label_2.setScaledContents(True)
self.label_2.setObjectName("label_2")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(480, 320, 191, 61))
self.pushButton.setFlat(True)
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Приложение EpicGames"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))
if __name__ == "__main__":
app = QApplication(sys.argv)
w = Window()
w.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
НИКОГДА НЕ ИЗМЕНЯЙТЕ код, сгенерированный Qt Designer, НИКОГДА.
Создайте другой класс, который наследуется от соответствующего виджета, и используйте созданный класс для его заполнения.
Всегда запускайте приложение в консоли/CMD/терминале и вы пулучите реальную ошибку.
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow, \
QPushButton, QTextEdit
from PyQt5.QtGui import QPixmap, QIcon
from PyQt5 import QtCore, QtGui, QtWidgets
# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1125, 807)
MainWindow.setWindowIcon(QIcon('resource/img/logo2.png'))
MainWindow.setStyleSheet("background-color: rgb(18, 18, 18);")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(350, 180, 441, 91))
self.label.setText("")
self.label.setPixmap(QtGui.QPixmap("boy.jpg"))
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(80, 60, 41, 51))
self.label_2.setText("")
self.label_2.setPixmap(QtGui.QPixmap("Ok.png"))
self.label_2.setScaledContents(True)
self.label_2.setObjectName("label_2")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(480, 320, 191, 61))
self.pushButton.setFlat(True)
self.pushButton.setObjectName("pushButton")
self.pushButton.setStyleSheet("background-color: rgb(55, 55, 55);")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Приложение EpicGames"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))
class Window2(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.label.setScaledContents(True)
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.pushButton = None
self.label_2 = None
self.label = None
self.centralwidget = None
self.setWindowTitle("Приложение EpicGames")
self.setWindowIcon(QIcon('resource/img/logo2.png'))
self.setGeometry(525, 162, 1125, 807)
self.setStyleSheet('background-color: rgb(18, 18, 18);')
self.main_text = QLabel(self)
self.main_text.setPixmap(QPixmap("logo.png"))
self.main_text.setScaledContents(True)
self.main_text.setGeometry(80, 60, 41, 51)
self.magazin = QPushButton(self)
self.magazin.setFlat(True)
self.magazin.setGeometry(15, 140, 162, 50)
self.magazin.setStyleSheet("""
QPushButton:hover { background-image: url(resource/img/mag1.jpg) }
QPushButton:!hover { background-image: url(resource/img/mag0.png) }
QPushButton:pressed { background-image: url(resource/img/mag2.jpg) }
""")
self.bibl = QPushButton(self)
self.bibl.setFlat(True)
self.bibl.setGeometry(15, 192, 162, 60)
self.bibl.setStyleSheet("""
QPushButton:hover { background-image: url(resource/img/bibl1.png) }
QPushButton:!hover { background-image: url(resource/img/bibl0.png) }
QPushButton:pressed { background-image: url(resource/img/bibl2.png) }
""")
self.un = QPushButton(self)
self.un.setFlat(True)
self.un.setGeometry(15, 255, 162, 55)
self.un.setStyleSheet("""
QPushButton:hover { background-image: url(resource/img/un1.png) }
QPushButton:!hover { background-image: url(resource/img/un0.png) }
QPushButton:pressed { background-image: url(resource/img/un2.png) }
""")
self.poisk = QTextEdit(self)
self.poisk.setGeometry(210, 60, 181, 31)
self.poisk.setPlaceholderText("Поиск")
self.poisk.setStyleSheet("background-color: rgb(84, 84, 84);\n"
"color: rgb(255, 255, 255);")
self.nov = QLabel(self)
self.nov.setGeometry(470, 70, 61, 16)
self.nov.setStyleSheet("color: rgb(255, 255, 255);")
self.nov.setText("Новости >")
self.ic = QPushButton(self)
self.ic.setFlat(True)
self.ic.setGeometry(1000, 60, 42, 42)
self.ic.setStyleSheet("""
QPushButton:hover { background-image: url(resource/img/ic1.png) }
QPushButton:!hover { background-image: url(resource/img/ic0.png) }
QPushButton:pressed { background-image: url(resource/img/ic2.png) }
""")
self.raspr = QPushButton(self)
self.raspr.setGeometry(220, 140, 672, 376)
self.raspr.setStyleSheet("border-image: url(resource/img/123.png) stretch;")
self.de = QPushButton(self)
self.de.setGeometry(920, 140, 167, 50)
self.de.setFlat(True)
self.de.setStyleSheet("""
QPushButton:hover { background-image: url(resource/img/iiic1.png) }
QPushButton:!hover { background-image: url(resource/img/iiic0.png) }
QPushButton:pressed { background-image: url(resource/img/iiic1.png) }
""")
self.gov = QPushButton(self)
self.gov.setGeometry(220, 500, 866, 287)
self.gov.setFlat(True)
self.gov.setStyleSheet("border-image: url(boy.jpg) stretch;")
self.gov.clicked.connect(self.err)
# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
def err(self):
self.window2 = Window2() # !!!
self.window2.show() # !!!
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
if __name__ == "__main__":
app = QApplication(sys.argv)
w = Window()
w.show()
sys.exit(app.exec_())

