Qt 如何使用 RGB 颜色和 QColor 创建 QBrush 并在以后更改它?

Ala*_*key 3 c++ qt qcolor

目前我用它来创建一个 QBrush:

QBrush *goldBrush = new QBrush(QColor(212,175,55));
scene->addRect(0,415,20,50,noPen,*goldBrush);
Run Code Online (Sandbox Code Playgroud)

但显然这会泄漏内存。

你还能怎么做呢?我试过这个:

QBrush greyBrush(QColor(212,175,55));
greyBrush.setColour(QColor(120,60,55))
Run Code Online (Sandbox Code Playgroud)

但这也没有奏效。我希望能够将画笔声明为一种颜色,然后能够更改它。

编辑:完整的问题我不好。

mfu*_*chs 5

改变画笔颜色的唯一方法是通过QBrush::setColor。画笔采用您指定的颜色的副本,而不是参考。

QBrush my_brush;
QColor red(Qt::red);
my_brush.setColor(red); // my_brush has its own color member internally
                        // and _not_ a reference to red
Run Code Online (Sandbox Code Playgroud)

也许您习惯了其他编程语言,例如 Java,其中基本上所有内容都是参考。在 C++ 中存在 值语义