C++ Qt Graphicscene背景不会更改
我是Qt的新手。我通过QGraphicscene类处理画布小部件。但我无法更改小部件的默认白色背景。以下是代码。我尝试使用QBrush设置背景。但它不起作用。它仍然是白色的。以下代码中有什么问题C++ Qt Graphicscene背景不会更改,c++,linux,qt,qtembedded,C++,Linux,Qt,Qtembedded,我是Qt的新手。我通过QGraphicscene类处理画布小部件。但我无法更改小部件的默认白色背景。以下是代码。我尝试使用QBrush设置背景。但它不起作用。它仍然是白色的。以下代码中有什么问题 int main(int argc, char **argv){ QApplication a(argc, argv); QGraphicsScene canvas; canvas.addText("Hello World"); QColor *color=new
int main(int argc, char **argv){
QApplication a(argc, argv);
QGraphicsScene canvas;
canvas.addText("Hello World");
QColor *color=new QColor(0x70,0x80,0x50,255);
QBrush *brush=new QBrush();
brush->setColor(*color);
canvas.setBackgroundBrush(*brush);
QGraphicsView view(&canvas);
view.show();
return a.exec();
}
尝试将颜色传递到笔刷构造函数中,而不是之后
QBrush brush(QColor(0x70, 0x80, 0x50, 255));
canvas.setBackgroundBrush(brush);
将笔刷样式设置为Qt::SolidPattern。默认笔刷构造函数将样式设置为Qt::NoBrush。请参见尝试将颜色传递到笔刷构造函数中,而不是之后
QBrush brush(QColor(0x70, 0x80, 0x50, 255));
canvas.setBackgroundBrush(brush);
将笔刷样式设置为Qt::SolidPattern。默认笔刷构造函数将样式设置为Qt::NoBrush。请参见这并没有回答您的问题,但仅供参考,您的代码正在泄漏内存。不要使用新操作符分配QColor和QBrush对象,而是像处理QApplication和QGraphicscene对象一样将它们声明为堆栈对象。setColor和setBackgroundBrush无论如何都会复制它们,因此使用new分配它们没有任何好处。这并不能回答您的问题,仅供参考,您的代码正在泄漏内存。不要使用新操作符分配QColor和QBrush对象,而是像处理QApplication和QGraphicscene对象一样将它们声明为堆栈对象。setColor和setBackgroundBrush无论如何都会复制它们,因此使用new分配它们没有任何好处。它工作得很好。您能告诉我如何更改画布上的文本颜色QGraphicscene::AddTextQGraphicscene::addSimpleText返回指向新创建的QGraphicsSimpleTextItem的指针吗。然后可以更改该文本时间的画笔。例如,canvas.addSimpleTextHello World->setBrushQt::red;它工作得很好。你能告诉我如何更改画布上的文本颜色QGraphicscene::AddTextQGraphicscene::addSimpleText返回一个指向新创建的QGraphicsSimpleTextItem的指针吗。然后可以更改该文本时间的画笔。例如,canvas.addSimpleTextHello World->setBrushQt::red;