1

我在 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)

我一定错过了一些非常基本的东西。请帮忙。谢谢。

4

1 回答 1

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 交互式会话执行所有必要的导入和设置 - 节省了大量繁琐的重新输入!

于 2013-12-22T19:33:39.650 回答