Qt如何使用带有QColor的RGB颜色创建QBrush并在以后更改?

时间:2015-12-13 20:37:10

标签: c++ qt qcolor

目前我用它来创建QBrush:

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

但显然这会泄漏记忆。

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

QBrush greyBrush(QColor(212,175,55));
greyBrush.setColour(QColor(120,60,55))

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

编辑:完全没问题。

1 个答案:

答案 0 :(得分:4)

更改画笔颜色的唯一方法是通过QBrush::setColor。画笔会获取您指定颜色的副本,参考。

QBrush my_brush;
QColor red(Qt::red);
my_brush.setColor(red); // my_brush has its own color member internally
                        // and _not_ a refernece to red

也许你习惯了其他编程语言,比如Java基本上所有东西都是参考。在C ++中有values semantics