Форум сайта python.su
На сцену добавляю текстовой элемент и отслеживаю изменения его положения. В приведенном ниже варианте все работает как надо. Но при использовании наследника сцены (раскомментировать #sc = WSC()) - текст не отображается. Без переопределения itemChange - работает. В чем ошибка?
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PySide import QtCore, QtGui
class WSC (QtGui.QGraphicsScene):
def __init__(self, parent=None):
super(WSC, self).__init__(parent)
class WSNode (QtGui.QGraphicsSimpleTextItem):
def showNode(self):
self.setFlag(QtGui.QGraphicsItem.ItemSendsGeometryChanges,True)
self.setPos(27.4, 76.1)
self.setFlag(QtGui.QGraphicsItem.ItemIsSelectable)
self.setText('txt')
self.setFlag(QtGui.QGraphicsItem.ItemIsMovable, True)
self.display.addItem(self)
def itemChange(self, change, value):
if change == QtGui.QGraphicsItem.ItemPositionChange:
print value.x()
return super(WSNode,self).itemChange(change, value)
app = QtGui.QApplication(sys.argv)
sc = QtGui.QGraphicsScene()
#sc = WSC()
view = QtGui.QGraphicsView(sc)
view.show()
nn=WSNode()
nn.display=sc
nn.showNode()
sys.exit(app.exec_())
Отредактировано (Фев. 13, 2011 13:39:41)
Офлайн