pyqt5: Невозможно запустить keyPressedEvent в окне графического интерфейса, которое сделано в QTdesigner - PullRequest
0 голосов
/ 08 июня 2018

Я сделал два интерфейса с помощью QT конструктора и назвал их с помощью uic.loadUi ().Я хочу создать ярлык для выхода из кода с помощью keyPressEvent, потому что весь мой графический интерфейс работает в полноэкранном режиме.код будет работать в Raspberry Pi.Я нашел код с keyPressEvent, но он работает только в окне self.show ().Я не использую это окно, но событие не работает в моем окне пользовательского интерфейса.Как я могу запустить keyPressEvent в моем окне пользовательского интерфейса, созданном с помощью QTdesigner? (Self.ui и self.goodsUi)

class Form(QtWidgets.QDialog):
    def __init__(self, parent=None):
        super(Form, self).__init__(parent)

Я хочу использовать эти два окна

        self.ui = uic.loadUi("ui/a.ui")
        self.goodsUi = uic.loadUi("ui/goods.ui")

        self.ui.showFullScreen()
        self.goodsUi.showFullScreen()

Я хочучтобы удалить это окно / я его не использую

        self.showFullScreen()
        self.resize(10, 10)

это keypressevent, которое работает только в окне self.show ()

    def keyPressEvent(self, event):
        if event.key() == Qt.Key_D:
            sys.exit(1)

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    w = Form()
    sys.exit(app.exec())

1 Ответ

0 голосов
/ 08 июня 2018

Чтобы закрыть все окна, попробуйте следующее:

def keyPressEvent(self):
    app = QtWidgets.QApplication.instance()
    app.closeAllWindows()
...