LINUX.ORG.RU

Масштабирование рисунков в Qt

 , , , ,


0

1

Изучив несколько примеров, не нашел способа отмасштабировать нарисованное QPainter'ом под размеры виджета. Т.е. есть paintEvent

void myWidget::paintEvent(QPaintEvent *event)
{
    QPainter qp(this);

    qp.drawLine(beg_pos, 0, beg_pos, 40);
    qp.drawLine(beg_pos, 40, end_pos, 40);
    qp.drawLine(end_pos, 40, end_pos, 0);
}
в котором надо рисовать что-нибудь в собственной системе координат, а затем подогнать под рамки виджета, в котором и рисуем. Из документации понял, что для подобного есть матрицы, но как их правильно использовать?

Для всякого рода интерактивных графиков или схем в Qt удобней использовать функционал QGraphicsScene / QGraphicsView. Там масштабирование есть как функция.

А вообще у QPainter тоже есть функция scale https://doc.qt.io/qt-5/qpainter.html#scale.

rumgot ★★★★★ ()
Последнее исправление: rumgot (всего исправлений: 4)