Страницы

Поиск по вопросам

суббота, 13 июля 2019 г.

Пишу рисовалку в QT. При рисовании любым цветом после одиночного нажатия лкм появляется чёрная точка

Если зажать ЛКМ и провести мышью, то получится линия, как и должно быть. Это сам проект: https://vk.com/doc66577607_445871169 Это фрагмент кода с самим рисованием:
void paintScene::mousePressEvent(QGraphicsSceneMouseEvent *event) { if (event->button() == Qt::LeftButton) { addEllipse(event->scenePos().x() - brushSize, event->scenePos().y() - brushSize, (brushSize*2), (brushSize*2), pen, brush); previousPoint = event->scenePos(); } }
void paintScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { if (event->buttons() == Qt::LeftButton) { addLine(previousPoint.x(), previousPoint.y(), event->scenePos().x(), event->scenePos().y(), QPen(color,brushSize*2,Qt::SolidLine,Qt::RoundCap)); previousPoint = event->scenePos(); } }
UPD: разобрался. В функции changeColor не задавал цвета кисти и пера. Спасибо.


Ответ

В вызове addEllipse Вы используете pen и/или brush черного цвета.
Зачем Вы вообще в mousePressEvent что-то рисуете?
Там цвет задан другой.
Где - там? Для линии Вы каждый раз создаете новый pen с цветом color. Делайте то же самое в вызове addEllipse, и точка будет голубая:
addEllipse(event->scenePos().x() - brushSize, event->scenePos().y() - brushSize, (brushSize*2), (brushSize*2), QPen(color,brushSize*2,Qt::SolidLine,Qt::RoundCap), brush);
И при чем здесь paintEvent? Речь идет о рисовании как реакции на движение мыши.

Комментариев нет:

Отправить комментарий