2014-10-05 62 views
0

互动我不知道怎么一会创建一个GUI应用程序,并与它从启动它的控制台交互。交互式Python - 保持控制台和GUI主循环

举个例子,我想创造PyQt的GUI和从控制台使用它。这可能是无需重新启动应用程序,测试设置,但在较大的项目也将调用函数等

下面是使用PyQt的一个简单的例子:

import sys 
from PyQt4 import QtGui 

def main(): 
    app = QtGui.QApplication(sys.argv) 
    w = QtGui.QWidget() 
    w.show() 
    sys.exit(app.exec_()) 

if __name__ == '__main__': 
    main() 

时,这是与python -i example.py运行控制台被阻止只要主循环被执行。

我怎么能说w.resize(100,100)的GUI运行时?

回答

0

OPS,贴错的答案

之前存在栈后有关

Execute Python code from within PyQt event loop

+0

据我所见,'QTimer.singleShot'方法只允许在运行期间执行预定义的函数。这不允许来自控制台的交互,因为它仍然被阻止。 还是我误解了? – Merlin 2014-10-05 22:05:51

0

最简单的方法是使用IPython的:

ipython --gui=qt4 

ipython --helponline documentation更多选项(例如gtk,tk等)。

+0

你能提供一个关于如何使用它的例子吗? 当我用qt4 gui运行Ipyton时,似乎无法从我的帖子中复制该示例。 我无法导入QtGui,但我无法使用预定义的QtGui。 – Merlin 2014-10-05 22:11:47

+0

如果您收到导入错误,请确保PyQt位于您的PYTHONPATH中。如果你在ubuntu/debian上,你可以用'apt-get install python-qt4 ipython'安装pyqt和ipython。然后你可以用'--gui = qt4'启动shell并开始测试你的qt代码。当你键入'w.show()'时,窗口会立即显示出来,而不会阻塞(你不必运行'app.exec _()',因为我猜ipython已经为你做了这个)。 – tyrion 2014-10-07 10:29:19