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 *' до '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' Ни один конструктор не может принять тип источника, или разрешение перегрузки конструктора было неоднозначным

1 ответ

Решение

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

Другие вопросы по тегам