我在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)
我一定错过了一些非常基本的东西。请帮忙。感谢。
答案 0 :(得分:0)
在尝试使用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交互式会话进行了所有必要的导入和设置 - 节省了大量繁琐的重新输入!