1

我已经添加到我QGraphicsScene的 aQGraphicsSimpleTextItem中,但只是一个简单的文本在当前背景下是不可读的。因此我想设置的背景颜色QGraphicsSimpleTextItem,但是......没有这样的方法。最简单的解决方案是什么?

4

3 回答 3

5

似乎最简单的解决方案是在构造函数中使用QGraphicsTextItem而不是QGraphicsSimpleTextIem调用setHtml(),例如:

this->setHtml(QString("<div style='background-color: #ffff00;'>") + text + "</div>");
于 2012-08-04T11:12:56.563 回答
4

要更改整个场景的背景:

myScene->setBackgroundBrush( Qt::red );

或者,如果您只想更改文本项的背景,您可能必须继承QGraphicsSimpleTextItem并覆盖该paint()方法。

class MyTextItem : public QGraphicsSimpleTextIem {
    public:
        void paint( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=0 )
        {
            painter->setBrush( Qt::red );
            painter->drawRect( boundingRect() );
            QGraphicsSimpleTextItem::paint( painter, option, widget );
        }
于 2012-07-26T14:55:53.273 回答
-1

这是访问背景颜色的方法。

QPalette currentPalette = myGraphicScene.palette();

// Set a new color for the background, use QPalette::Window
// as QPalette::Background is obsolete.
currentPalette.setColor( QPalette::Window, Qt::red );

// Set the palette.
myGraphicScene.setPalette( currentPalette );
于 2012-07-26T14:52:01.017 回答