Создание дочернего окна PyQt5
Помогите создать дочернее окно, которое при закрытии основного закроется вместе с ним, само дочернее окно должно внешне отличаться.
К сожалению, знаю только как создавать обычное окно.
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setWindowTitle("Lab 2-3")
self.centralWidget = QWidget(self)
self.setCentralWidget(self.centralWidget)
self.grid_layout = QGridLayout(self.centralWidget)
self.setGeometry(590, 300, 480, 215)
self.setStyleSheet("background : white;")
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
import sys
from PyQt5.Qt import *
class Window_2(QMainWindow): # !!! QMainWindow
def __init__(self, parent=None):
super().__init__(parent) # !!! parent
self.setWindowTitle("Window_2")
self.resize(200, 215)
class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setWindowTitle("Lab 2-3")
self.setGeometry(590, 300, 480, 215)
self.setStyleSheet("background : white;")
self.centralWidget = QWidget(self)
self.setCentralWidget(self.centralWidget)
self.button = QPushButton('Создать второе окно')
self.button.clicked.connect(self.create_window)
self.grid_layout = QGridLayout(self.centralWidget)
self.grid_layout.addWidget(self.button)
def create_window(self):
self.window = Window_2(self) # !!! self
self.window.show()
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
