QPrintPreviewDialog 打印预览使用实例
生活随笔
收集整理的這篇文章主要介紹了
QPrintPreviewDialog 打印预览使用实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
QT的打印機相關的類需要使用printsupport庫,其實底層都是使用cups進行打印的。
QT += core gui printsupportmainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QPrinter> class QPushButton; class QHBoxLayout; class MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();QHBoxLayout *m_mainLayout;QWidget *m_main;QPushButton *m_btn;public slots:void clickPrinter();void slotPrintReviewPaint(QPrinter *printer); };#endif // MAINWINDOW_H QPrinter中有很多屬性可以設置,但是有些打印機可能不支持這些設置,導致打印預覽有很多問題。mainwindow.cpp
#include "mainwindow.h" #include <QPushButton> #include <QWidget> #include <QHBoxLayout> #include <QPrinter> #include <QPainter> #include <QPrintPreviewDialog> MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), m_mainLayout(new QHBoxLayout(this)), m_main(new QWidget(this)), m_btn(new QPushButton("打印預覽", m_main)){m_main->setLayout(m_mainLayout);m_mainLayout->addWidget(m_btn);connect(m_btn, &QPushButton::clicked, this, &MainWindow::clickPrinter);setCentralWidget(m_main); }void MainWindow::clickPrinter() {QPrinter printer;//----------------- 設置打印機屬性 -------------// 打印預覽不生效printer.setDuplex(QPrinter::DuplexLongSide);printer.setPageSize(QPrinter::A3);// 打印預覽生效printer.setDoubleSidedPrinting(true);printer.setOrientation(QPrinter::Landscape);printer.setNumCopies(5);printer.setFromTo(2, 5);QPrintPreviewDialog pdlg(&printer);// 打印繪制消息connect(&pdlg, SIGNAL(paintRequested(QPrinter *)),SLOT(slotPrintReviewPaint(QPrinter *)));pdlg.exec(); }void MainWindow::slotPrintReviewPaint(QPrinter *printer) {QPainter p(printer);int pageNum = 5;for (int i = 0; i < pageNum; i++) {if (i != 0) printer->newPage(); // 支持多頁打印p.drawText(100, 100, "asdfa" + QString::number(i));} }MainWindow::~MainWindow() {}函數slotPrintReviewPaint(QPrinter *printer)很重要,你想要打印機的數據都可以在這里進行繪制,
最終你繪制的內容都會被打印出來。
QPrinter::newPage()用來新建一個頁面。git傳送門
總結
以上是生活随笔為你收集整理的QPrintPreviewDialog 打印预览使用实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: chrome html 打印预览,Chr
- 下一篇: smartforms以PDF打印预览