QApplication实例导致python shell缓慢

时间:2013-01-24 15:14:53

标签: python pyqt pyqt4 ipython

我实例化QApplication对象后,我的IPython shell变得迟钝。例如,即使从一个新的开始,以下代码将使我的shell缓慢到必须重新启动它。

from PyQt4 import QtGui
app = QtGui.QApplication([])

一旦提交,我的输入就会滞后2或3秒。我的计算机并不出色,但我仍然有足够的可用内存,而且它只是受到影响的python shell。我已经尝试了默认的python解释器和ipython解释器,但结果相同。有什么建议吗?

更新:我还尝试使用%run magic命令在ipython中运行一个独立的pyqt“Hello World”程序,当我关闭生成的“Hello World”窗口后,当控件返回到ipython时,它也有相同的影响;外壳变得迟钝,我的打字开始滞后2-3秒。

1 个答案:

答案 0 :(得分:3)

这可能有所帮助:

QtCore.pyqtRemoveInputHook()
  

第一次导入QtCore模块时,它会安装一个   Python输入钩子(即它设置Python的PyOS_InputHook的值   变量)。这允许在解释器中输入命令   应用程序运行时提示。然后有可能   动态创建新的Qt对象并调用任何现有的方法   Qt对象。

     

输入挂钩可能会导致某些类型的应用程序出现问题,   特别是通过不同提供类似设施的那些   手段。此函数删除PyQt安装的输入挂钩。

     

可以使用pyqtRestoreInputHook()恢复输入挂钩   功能

http://www.riverbankcomputing.com/static/Docs/PyQt4/html/qtcore.html#pyqtRemoveInputHook