我用QT设计师制作了两个ui,我用uic.loadUi()调用了这些ui。 我想创建一个快捷方式来使用keyPressEvent退出代码,因为我的所有GUI都以全屏运行。代码将在raspberry pi中运行。 我找到了一个带有keyPressEvent的代码,但它只适用于self.show()窗口。我没有使用那个窗口,但是这个事件在我的ui窗口上不起作用。如何在用QTdesigner制作的ui窗口中运行keyPressEvent?(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())
答案 0 :(得分:0)
要关闭所有窗口的功能,请尝试以下操作:
def keyPressEvent(self):
app = QtWidgets.QApplication.instance()
app.closeAllWindows()