Программа вылетает при рисовании на сцене QGraphicsView на разных вкладках
На первой вкладке при нажатии на кнопку работает, а на второй вылетает, ошибку никакую не выдаёт
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
class Ui_Dialog(object):
def setupUi(self, Dialog):
Dialog.setObjectName("Dialog")
Dialog.resize(903, 702)
self.gridLayout = QtWidgets.QGridLayout(Dialog)
self.gridLayout.setObjectName("gridLayout")
self.toolBox = QtWidgets.QToolBox(Dialog)
self.toolBox.setObjectName("toolBox")
self.page = QtWidgets.QWidget()
self.page.setGeometry(QtCore.QRect(0, 0, 885, 630))
self.page.setObjectName("page")
self.pushButton = QtWidgets.QPushButton(self.page)
self.pushButton.setGeometry(QtCore.QRect(370, 70, 75, 23))
self.pushButton.setObjectName("pushButton")
self.graphicsView = QtWidgets.QGraphicsView(self.page)
self.graphicsView.setGeometry(QtCore.QRect(60, 140, 751, 381))
self.graphicsView.setObjectName("graphicsView")
self.toolBox.addItem(self.page, "")
self.page_2 = QtWidgets.QWidget()
self.page_2.setGeometry(QtCore.QRect(0, 0, 885, 630))
self.page_2.setObjectName("page_2")
self.graphicsView_2 = QtWidgets.QGraphicsView(self.page_2)
self.graphicsView_2.setGeometry(QtCore.QRect(60, 200, 751, 381))
self.graphicsView_2.setObjectName("graphicsView_2")
self.pushButton_2 = QtWidgets.QPushButton(self.page_2)
self.pushButton_2.setGeometry(QtCore.QRect(380, 80, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.toolBox.addItem(self.page_2, "")
self.gridLayout.addWidget(self.toolBox, 0, 0, 1, 1)
self.retranslateUi(Dialog)
self.toolBox.setCurrentIndex(1)
QtCore.QMetaObject.connectSlotsByName(Dialog)
def retranslateUi(self, Dialog):
_translate = QtCore.QCoreApplication.translate
Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
self.pushButton.setText(_translate("Dialog", "PushButton"))
self.toolBox.setItemText(self.toolBox.indexOf(self.page), _translate("Dialog", "Page 1"))
self.pushButton_2.setText(_translate("Dialog", "PushButton"))
self.toolBox.setItemText(self.toolBox.indexOf(self.page_2), _translate("Dialog", "Page 2"))
class Dialog(QtWidgets.QDialog, Ui_Dialog):
def __init__(self):
super().__init__()
self.setupUi(self)
self.pushButton.clicked.connect(self.draw_scene)
self.pushButton_2.clicked.connect(self.test)
def draw_scene(self):
self.scene = QGraphicsScene()
self.graphicsView.setScene(self.scene)
self.square = QGraphicsRectItem(0, 35, 34 * 5, 200)
self.square.setBrush(QBrush((Qt.BDiagPattern)))
self.scene.addItem(self.square)
self.scene.addRect(0 + 34 * 5, 35, 25 * 5, 200)
self.scene.addRect(0 + (34 + 10) * 5, 135 - 8 * 5 // 2, (65 + 10) * 5 * (-1), 8 * 5)
def test(self):
self.scene2 = QGraphicsScene()
self.graphicsView_2.setScene(self.scene2)
self.self.square = QGraphicsRectItem(0, 35, 43 * 5, 200)
self.square.setBrush(QBrush((Qt.BDiagPattern)))
self.scene2.addItem(self.square)
self.scene2.addRect(0 + 43 * 5, 35, 55 * 5, 200)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = Dialog()
w.show()
sys.exit(app.exec_())