PYQT如何正确绘制QGraphicsTextItem

时间:2016-10-31 14:32:03

标签: python pyqt4

class TextItem(QGraphicsTextItem):

    def __init__(self,text):
        QGraphicsTextItem.__init__(self,text)
        self.text=text
        self.setFlag(QGraphicsItem.ItemIsMovable, True)
        self.setFlag(QGraphicsItem.ItemIsSelectable, True)
        self.setFlag(QGraphicsItem.ItemIsFocusable, True)



    def paint(self,painter,option,widget):
        self.pen = QPen()
        self.pen.setWidth(2)
        painter.setPen(self.pen)
        painter.drawRect(self.boundingRect())

我可以画QGraphicsTextItem。但问题是......当我绘制它时,QGraphicsTextItem中的文本消失了。我怎么解决?

1 个答案:

答案 0 :(得分:1)

通过覆盖父paint类提供的QGraphicsTextItem方法,您说您不会使用它绘制文本的方式。相反,你正在实现自己的文字绘画。但是你实际上并没有画任何文字,所以屏幕上没有文字。

如果您想自己控制所有绘画,那么您将需要添加至少类似的内容:

painter.drawText(self.boundingRect(),self.text)

或者你可以打电话

QGraphicsTextItem.paint(self,painter,option,widget)

在您自己的绘画结束时,取决于您正在寻找的效果。