QT6の印刷関係メモ

なんとなく実験的に触ることがあったのでメモした内容を記事にしてみる。

まずはビルドにPrintSupportを追加する。

CMakeだと以下の2か所にPrintSupportを追記

find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets PrintSupport)

target_link_libraries(print_test PRIVATE Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::PrintSupport)

プリンタ名の一覧を取得

#include <QPrinterInfo>

// プリンタ名一覧
QStringList printerList = QPrinterInfo::availablePrinterNames();

プリンタ名を指定して印刷ダイアログを表示

#include <QPrinter>
#include <QPrintDialog>

QPrinter printer(QPrinter::HighResolution);
printer.setPrinterName("プリンタ名");    // プリンタ
printer.pageLayout().setPageSize(QPageSize::A4);    // 用紙
printer.pageLayout().setOrientation(QPageLayout::Orientation::Portrait);    // 向き

QPrintDialog printDialog(&printer, this);
if(printDialog.exec() == QDialog::Accepted){
    // 印刷処理
}

コメント

タイトルとURLをコピーしました