#qt
#qt
Вопрос:
В QT я создал пользовательский интерфейс с помощью QWidget. И я хочу распечатать пользовательский интерфейс на своем принтере. Но пользовательский интерфейс слишком длинный для печати на одной странице.(высота больше размера A4) Я хочу непрерывную печать без функции newPage().
Я использую QPrinter и QPainter. Но результатом, который я получил, было обрезанное изображение виджета. Я не хочу использовать функцию newPage().
QPrinter printer;
QPainter painter;
QPrintDialog printDialog(amp;printer);
if (printDialog.exec() == QDialog::Accepted) {
painter.begin(amp;printer);
ui->scrollArea->widget()->render(amp;painter);
}
Мне не нравится применять printer.newPage() вручную к каждому пользовательскому интерфейсу.
Есть ли какая-либо опция или код, который автоматически печатается на следующей странице, например MS Word?
Комментарии:
1. Вы установили макет принтера и размер страницы в правильные значения?
2. Я не устанавливал размер страницы макета. Я использую значение по умолчанию. Задаю ли я конкретный макет и размер страницы для печати формата А4?
3. Попробуйте установить размер страницы и поля в формате A4. Взгляните сюда: doc.qt.io/qt-5/qprinter.html и здесь doc.qt.io/qt-5/qpagelayout.html Если это не сработает, вам нужно будет использовать newPage, чтобы разбить ваш виджет…