我正在使用PyQt5在现有程序之上构建GUI。现有程序有自己的驱动程序文件,我想从所述驱动程序的接口收集用户输入。问题是我无法使用结束程序的sys.exit()
来解决问题。
以下是我想用来为用户显示GUI的函数:
def gui():
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
return ui.argv
我的Ui_MainWindow
类有一个实例argv,它保存通过界面输入的所有用户输入。我想将gui()
作为模块导入到我的驱动程序中并执行usr_input = gui()
之类的操作。当然,由于usr_input
调用,上面的代码将在返回变量sys.exit()
之前终止。
我很清楚,从gui调用我的驱动程序来启动程序是有效的。例如,按钮动作可以包括调用驱动程序。然而,这最好是不美观的,最糟糕的是非常烦人的结构:我希望驱动程序成为我程序的主线程,无论我是否使用命令行界面或我的自定义GUI。
我还尝试删除sys.exit(app.exec_())
调用并将其更改为app.exec()
,但在这种情况下,GUI窗口永远不会打开...
那么我如何解决sys.exit()
终止整个程序同时仍然让GUI窗口显示并正常运行的事实?
感谢您的帮助!