5

实例化 QApplication 对象后,我的 IPython shell 变得迟缓。例如,即使从新开始,以下代码也会使我的 shell 变得足够迟缓,以至于我必须重新启动它。

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

一旦提交,我的打字就会滞后 2 或 3 秒。我的电脑不是很好,但我仍然有足够的可用内存,而且似乎只有 python shell 受到了影响。我已经尝试了默认的 python 解释器和 ipython 解释器,结果相同。有什么建议么?

更新:我还尝试使用魔法命令在 ipython 中运行一个独立的 pyqt“Hello World”程序,%run当我关闭生成的“Hello World”窗口后控制权返回给 ipython 时,它具有相同的效果;外壳变得迟缓,我的打字开始滞后 2-3 秒。

4

1 回答 1

4

这可能会有所帮助:

QtCore.pyqtRemoveInputHook()

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

输入挂钩可能会导致某些类型的应用程序出现问题,尤其是那些通过不同方式提供类似功能的应用程序。这个函数移除了 PyQt 安装的输入钩子。

可以使用 pyqtRestoreInputHook() 函数恢复输入挂钩。

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

于 2013-01-25T10:24:40.643 回答