目前我用它来创建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))
但那也没有奏效。我希望能够将画笔声明为一种颜色,然后才能更改它。
编辑:完全没问题。
答案 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。