@yong

Как сделать закрытие окна QMainWindow по кнопке на QDockWidget?

Доброго времени суток. Необходимо добавить закрытие основного окна по кнопке QPushButton. Никак не могу найти информацию как это сделать. Привожу часть своего кода

class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)

        self.browser = QWebEngineView()
        self.browser.setUrl(QUrl("http://yandex.ru"))

        self.browser.urlChanged.connect(self.update_urlbar)
        self.browser.loadFinished.connect(self.update_title)
        self.setCentralWidget(self.browser)

        self.status = QStatusBar()
        self.setStatusBar(self.status)

## QDockWidget ##
        self.docked = QDockWidget("Виджет", self)
        self.addDockWidget(Qt.LeftDockWidgetArea, self.docked)
        self.dockedWidget = QWidget(self)
        self.docked.setWidget(self.dockedWidget)
        self.dockedWidget.setLayout(QVBoxLayout())
        self.dockedWidget.layout().addWidget(QPushButton('Завершить работу'))

Кнопка создана на панели, но как добавить чтобы по нажатию закрывалось окно? Стандартный крестик отключил, именно такой вариант необходим. Помогите кто сможет)
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
self.closeBtn = QPushButton(self.tr('Close'))
self.closeBtn.clicked.connect(self.close)
self.dockedWidget.layout().addWidget(self.closeBtn)

Вот документация:
https://doc.qt.io/qt-5/qwidget.html#close
https://doc.qt.io/qt-5/qabstractbutton.html#clicked

Ну и на сам pyside тоже доки есть. Хотя, можно и просто на Qt смотреть. pyside -- просто биндинги в конце концов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы