На данный момент я использую это для создания 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))
Но это тоже не сработало. Я хочу иметь возможность объявить кисть как один цвет, а затем изменить его.
Редактировать: полная проблема моя плохая.
Единственный способ изменить цвет кисти — через 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, где в основном все является ссылкой. В С ++ есть семантика значений.
Других решений пока нет …