使用QT (PySide)通过QInputDialog获取用户输入
我写了一个小脚本,用Python做一些事情,我想先让用户输入一些信息。这是我现在的代码:
import sys
from PySide import QtGui
app = QtGui.QApplication(sys.argv)
gui = QtGui.QWidget()
text, ok = QtGui.QInputDialog.getText(gui, "question",
"""please put the thing I need from you""")
print(text, ok)
if ok:
app.exit()
else:
app.exit()
app.exec_()
print ("I'm aliveeeee'")
弹出的对话框正如我所希望的那样,但 app.exec_()
一直没有结束,所以后面的代码就没法执行(而且进程也一直没有结束)。我尝试用 app.exit()
和 app.quit()
来结束它,我还试着显示和关闭 QWidget
,但是都没有用。
如果我在调用 QInputDialog
之前先用 gui.show()
显示窗口,然后手动关闭这个窗口,应用程序就能成功关闭。不过,这不是我想要的效果。
你能指导我一下,怎么在获取到数据后正确关闭这个执行循环吗?
附注:这个应用程序会是一个Windows应用(使用py2exe),所以不能用命令行。
1 个回答
4
别调用 app.exec_() 这个方法。
这里的问题是,这只是一个简单的示例。在实际应用中,通常你会先显示一些界面,然后再调用 app.exec() 让用户可以和这个界面进行互动。