【发布时间】:2016-11-16 15:14:01
【问题描述】:
我使用 Qt Designer 构建我的 GUI,并使用 pyuic5 将它们转换为 py 文件。我的最终目标是在变量 == 1 时中断用户关闭程序并向他们显示“您确定要关闭吗?”类型对话框。如果所述变量 == 0 则正常关闭程序即可。
我已经看到很多关于如何做到这一点的示例,但所有这些示例都需要在 GUI 模块中编辑代码。我将 pyuic5 创建的 gui.py 文件导入到我的主脚本中,在那里我完成了与按钮、行编辑等的所有连接。我这样做是为了随时可以使用 Qt Designer 更新 GUI 而不会影响程序功能.
有没有办法从我的从 Qt Designer 导入 GUI 模块的主脚本执行此操作?
我的主脚本的结构示例:
import philipsControlGui
import sys
def main():
MainWindow.show()
sys.exit(app.exec_())
def test():
print('test')
# Main window setup
app = philipsControlGui.QtWidgets.QApplication(sys.argv)
MainWindow = philipsControlGui.QtWidgets.QMainWindow()
ui = philipsControlGui.Ui_MainWindow()
ui.setupUi(MainWindow)
# Main window bindings
ui.onButton.clicked.connect(test)
### Can I insert something here to do: if user closes the window... do something else instead?
if __name__ == "__main__":
main()
【问题讨论】:
-
您需要重写 closeEvent 方法(正如您可能已经从大量示例中知道的那样)。我不知道你是否可以在 Qt Designer 中做到这一点。
标签: python qt python-3.x pyqt pyqt5