使用QT(PySide)通过QInputDialog获取用户输入

时间:2014-04-24 15:52:56

标签: python qt pyside

我在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()来杀死它。 {1}},我也尝试show()和close()QWidget,但没有任何工作。

如果我在调用QInputDialog之前执行gui.show(),然后手动关闭窗口小部件,则应用程序将成功关闭。但是,这不是我想要的行为。

你能指导我获取数据后关闭exec循环的最佳方法吗?

PD:这将是一个Windows应用程序(使用py2exe)并且使用shell不是一个选项。

1 个答案:

答案 0 :(得分:3)

只是不要调用app.exec _()

这里的问题是这是一个玩具的例子。在现实生活中,通常会显示一些UI,然后调用app.exec()让用户与之交互。