LINUX.ORG.RU

Как масштобировать виджеты под печать?

 , ,


0

1

Доброго времени суток. Имеется QTableView, ее мне нужно распечатать, использую для печати QPrinter и QTextDocument, все распечатывается, но вся таблица на лист не помещается. Так вот вопрос, как мне таблицу отмасштабировать под лист A4?

Подскажите новичку.


По идее берёшь отношения dpi экрана и принтеровского дивайса и считаешь отношение. Как это в Qt делается не знаю, думаю надо читать про то, как там устроены системы координат.

pon4ik ★★★★★
()
Ответ на: комментарий от RazrFalcon

Насколько я знаю, только перебором.

Перебором чего? Ну и в доке есть сходу пример:

http://doc.qt.io/qt-5/qtprintsupport-index.html

        QPainter painter;
        painter.begin(&printer);
        double xscale = printer.pageRect().width()/double(myWidget->width());
        double yscale = printer.pageRect().height()/double(myWidget->height());
        double scale = qMin(xscale, yscale);
        painter.translate(printer.paperRect().x() + printer.pageRect().width()/2,
                           printer.paperRect().y() + printer.pageRect().height()/2);
        painter.scale(scale, scale);
        painter.translate(-width()/2, -height()/2);

        myWidget->render(&painter);

Неужели так трудно просто почитать доку (это больше к ТС).

anonymous
()
Ответ на: комментарий от anonymous

Да он идиот необразованный. Регулярно постит тупые вопросы с обязательным своим «подскажите новичку».

anonymous
()
Ответ на: комментарий от anonymous

Это для растра. Если печатаем html - то чёрти что будет.

RazrFalcon ★★★★★
()
Ответ на: комментарий от anonymous

Ну Я не виноват что ты сразу умный такой стал.

Egor12
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.