我在Ubuntu 13.10上使用Python 2.7.5,PyQt4版本是4.10.2。我是 PyQt 的新手,以下代码演示了我如何获得分段错误。启动 Python 解释器后:
Python 2.7.5+ (default, Sep 19 2013, 13:48:49)
[GCC 4.8.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from PyQt4 import QtGui
>>> obj=QtGui.QGraphicsSimpleTextItem()
>>> obj.setText('sometext')
Segmentation fault (core dumped)
或直接使用字符串初始化:
>>> from PyQt4 import QtGui
>>> obj2=QtGui.QGraphicsSimpleTextItem('some text')
Segmentation fault (core dumped)
或使用 QString 对象设置文本:
>>> from PyQt4 import QtGui, QtCore
>>> s=QtCore.QString('sometext')
>>> obj=QtGui.QGraphicsSimpleTextItem()
>>> obj.setText(s)
Segmentation fault (core dumped)
我一定错过了一些非常基本的东西。请帮忙。谢谢。
在尝试使用 GUI 对象/小部件之前,应始终创建一个 QApplication 实例:
Python 2.7.6 (default, Nov 26 2013, 12:52:49)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from PyQt4 import QtGui
>>> app = QtGui.QApplication([])
>>> obj = QtGui.QGraphicsSimpleTextItem()
>>> obj.setText('foo')
>>>
最好向.pythonrc.py
添加一个函数,该函数为 pyqt 交互式会话执行所有必要的导入和设置 - 节省大量繁琐的重新键入!