#include "dialog.h" #include "ui_dialog.h" #include #include Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); //m_printer = new QPrinter( QPrinterInfo::defaultPrinter() ); m_printer = new QPrinter; QPrintDialog *pd = new QPrintDialog(m_printer, this); pd->exec(); updateInfo(); connect(ui->pushButton, &QAbstractButton::clicked, [=]() { QPageSetupDialog dlg(m_printer, this); if (dlg.exec() == QDialog::Accepted) { updateInfo(); } }); /* auto pageLayout = m_printer->pageLayout(); pageLayout.setMode(QPageLayout::FullPageMode); pageLayout.setMinimumMargins(QMarginsF(0, 0, 0, 0)); m_printer->setPageLayout(pageLayout); */ connect(ui->pushButton_2, &QAbstractButton::clicked, [=]() { m_printer->setPageMargins(QMargins(0, 0, 0, 0), QPageLayout::Millimeter); updateInfo(); }); connect(ui->pushButton_3, &QAbstractButton::clicked, [=]() { m_printer->setPageMargins(QMargins(5, 5, 5, 5), QPageLayout::Millimeter); updateInfo(); }); } Dialog::~Dialog() { delete ui; } void Dialog::updateInfo() { QString str = QString("Margins <%1 %2 %3 %4>").arg(m_printer->margins().left).arg(m_printer->margins().top).arg(m_printer->margins().right).arg(m_printer->margins().bottom); str += QString("\nRect <%1 %2 %3 %4>").arg(m_printer->pageRect().left()).arg(m_printer->pageRect().top()).arg(m_printer->pageRect().right()).arg(m_printer->pageRect().bottom()); str += QString("\nPage rect <%1 %2 %3 %4>").arg(m_printer->paperRect().left()).arg(m_printer->paperRect().top()).arg(m_printer->paperRect().right()).arg(m_printer->paperRect().bottom()); QPageLayout lo = m_printer->pageLayout(); lo.setUnits(QPageLayout::Millimeter); QMarginsF mm = lo.minimumMargins(); str += QString("\n\nMINIMUM Margins <%1 %2 %3 %4>").arg(mm.left()).arg(mm.top()).arg(mm.right()).arg(mm.bottom()); ui->label->setText(str); }