[РЕШЕНО] Qt: сохранение изображения с QGraphicsScene

Модератор: Модераторы разделов

Ответить
IMB
Сообщения: 2559
ОС: Debian

[РЕШЕНО] Qt: сохранение изображения с QGraphicsScene

Сообщение IMB »

Доброго дня!
На QGraphicsScene выводится изображение на котором пользователь может отмечать точки, виджет поддерживает масштабирование.
Необходимо обеспечить сохранение всего изображения вместе с отметками пользователя.
Код сохранения текущего изображения:

Код: Выделить всё

QString file = QFileDialog::getSaveFileName(0, tr("Save file"),
                                                QDir::homePath());
if (!file.isEmpty()) {
    const QGraphicsScene *cur = scene();
    const qreal width = cur->width();
    const qreal height = cur->height();
    QImage image(width, height, QImage::Format_RGB888);
    QPainter painter(&image);
    painter.setRenderHint(QPainter::Antialiasing);
    render(&painter, QRectF(0, 0, width, height), QRect(0, 0, width, height));
    image.save(file);
}

Код работает, но сохраняется не всё изображение, например если в текущем окне отображается не всё изображение, то сохранённое изображение имеет размер оригинального изображение и отображённую часть в верхнем левом углу.
Подскажите как можно сохранить всё изображение?
Спасибо.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: [РЕШЕНО] Qt: сохранение изображения с QGraphicsScene

Сообщение NickLion »

А почему

Код: Выделить всё

render(&painter, QRectF(0, 0, width, height), QRect(0, 0, width, height));

От контрола, а не

Код: Выделить всё

cur->render(&painter, QRectF(0, 0, width, height), QRect(0, 0, width, height));

от сцены?
Спасибо сказали:
Ответить