2016-10-31 12 views
0
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のテキストは、ペイントすると消えます。どうすれば解決できますか?PYQT QGraphicsTextItemを正しくペイントする方法

+0

テキストをペイントしているようではありません。ちょうどRectです。ちょうど 'drawText'を実行してください – strubbly

+0

私はすでにQGraphicsTextItem .__ init __(self、text)のようにTextを設定しているので、私はそれをしませんでした。 – Jason

答えて

1

親のQGraphicsTextItemクラスが提供するpaintメソッドをオーバーライドすると、テキストをどのように塗りつぶすかを使用しないと言っています。代わりにあなた自身のテキストペインティングを実装しています。しかし、実際にテキストをペイントしないので、画面にテキストは表示されません。

あなたはすべての絵を自分でコントロールしたいならば、あなたは少なくとも何かなどを追加する必要があるとしている。

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

それとも、おそらくあなたの最後で

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

を呼び出すことができますあなたが探している効果に応じて自分の絵を描きます。

関連する問題