我已经添加到我QGraphicsScene
的 aQGraphicsSimpleTextItem
中,但只是一个简单的文本在当前背景下是不可读的。因此我想设置的背景颜色QGraphicsSimpleTextItem
,但是......没有这样的方法。最简单的解决方案是什么?
问问题
2285 次
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 回答