Qt QColor и QBrush в GraphicsView?

Как бы вы установили собственный цвет, используя значения RBG, для QBrush? А затем нарисуйте прямоугольник кистью в GraphicsView.

До сих пор я пробовал:

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

Сообщение об ошибке:

ошибка: C2664: 'QGraphicsRectItem *QGraphicsScene::addRect(qreal,qreal,qreal,qreal,const QPen &,const QBrush &)': невозможно преобразовать аргумент 6 из 'QBrush *' в 'const QBrush &' Причина: невозможно преобразовать из 'QBrush *' to 'const QBrush' Ни один конструктор не мог принять исходный тип, или разрешение перегрузки конструктора было неоднозначным

Затем, когда я заменяю первую строку на:

const QBrush *goldBrush = new QBrush(QColor(212,175,55));

Сообщение лишь немного изменено на:

ошибка: C2664: 'QGraphicsRectItem *QGraphicsScene::addRect(qreal,qreal,qreal,qreal,const QPen &,const QBrush &)': невозможно преобразовать аргумент 6 из 'const QBrush *' в 'const QBrush &' Причина: невозможно преобразовать с 'const QBrush *' на 'const QBrush' Ни один конструктор не мог принять исходный тип, или разрешение перегрузки конструктора было неоднозначным


person AlarmingMonkey    schedule 12.12.2015    source источник


Ответы (1)


Вы должны заменить "scene->addRect(0,415,20,50,noPen,goldBrush);" с помощью «scene->addRect(0,415,20,50,noPen,*goldBrush);». То, как вы это делаете, вы передаете адрес позиции в памяти вместо ссылки на переменную.

person Filipe Olegario    schedule 12.12.2015