Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt Graphicscene背景不会更改_C++_Linux_Qt_Qtembedded - Fatal编程技术网

C++ Qt Graphicscene背景不会更改

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

我是Qt的新手。我通过QGraphicscene类处理画布小部件。但我无法更改小部件的默认白色背景。以下是代码。我尝试使用QBrush设置背景。但它不起作用。它仍然是白色的。以下代码中有什么问题

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;