Я пытаюсь нарисовать прямоугольник вне paintEvent ().
Если пользователи щелкают и перетаскивают экран мышью, приложение должно нарисовать «Выбор области».
Но это кажется невозможным рисование вне paintEvent ().
Я уже решил эту проблему на MF C с ReleaseD C ().
Вот мой код на MF C:
void DrawingPaper::DrawSelectingArea() {
CDC *dc = this->GetDC();
CPen pen;
CPen *oldPen;
dc->SetROP2(R2_NOTXORPEN);
pen.CreatePen(PS_DOT, 1, RGB(166, 166, 166));
oldPen = dc->SelectObject(&pen);
dc->Rectangle(this->startX, this->startY, this->currentX, this->currentY);
dc->SelectObject(oldPen);
this->ReleaseDC(dc);
DeleteObject(pen);
}
работает хорошо, хотя код не в OnPaint ().
Но как на Qt, как?
вот мой код на Qt:
void DrawingPaper::DrawSelectingArea() {
QPainter painter(this);
QRect drawRect(this->startX, this->startY, this->currentX, this->currentY);
painter.drawRect(drawRect);
//this->ReleaseDC(dc);
}
это не работает, потому что рисователь, рисующий прямоугольник, будет удален другим QPainter в paintEvent ().
Есть ли какое-либо решение, например ReleaseD C ()?
Я нахожусь на Qt 5.12.6.
Спасибо за помощь.