QPrintDialog Class

QPrintDialog 类提供了一个用于指定打印机配置的对话框。更多

头文件: #include <QPrintDialog>
CMake.QPrintDialog find_package(Qt6 REQUIRED COMPONENTS PrintSupport)
target_link_libraries(mytarget PRIVATE Qt6::PrintSupport)
qmake: QT += printsupport
继承: QAbstractPrintDialog

属性

公共函数

QPrintDialog(QWidget *parent = nullptr)
QPrintDialog(QPrinter *printer, QWidget *parent = nullptr)
virtual ~QPrintDialog()
void open(QObject *receiver, const char *member)
QAbstractPrintDialog::PrintDialogOptions options() const
QPrinter *printer()
void setOption(QAbstractPrintDialog::PrintDialogOption option, bool on = true)
void setOptions(QAbstractPrintDialog::PrintDialogOptions options)
bool testOption(QAbstractPrintDialog::PrintDialogOption option) const

重新实现的公共函数

virtual void done(int result) override
virtual int exec() override
virtual void setVisible(bool visible) override

信号

void accepted(QPrinter *printer)

详细说明

该对话框允许用户更改与文档相关的设置,如纸张大小和方向、打印类型(彩色或灰度)、页数范围和打印份数。

该对话框还提供了控件,使用户能够从可用的打印机(包括任何配置的网络打印机)中进行选择。

通常,QPrintDialog 对象由QPrinter 对象构建,并使用exec() 函数执行。

QPrintDialog printDialog(printer, parent);
if (printDialog.exec() == QDialog::Accepted) {
    // print ...
}

如果对话框被用户接受,则QPrinter 对象已正确配置为打印。

通过打印机对话框(如上图所示的 Plastique 风格),可以访问常用打印属性。在使用 CUPS 打印系统的 X11 平台上,可以通过对话框的Properties 按钮修改每台可用打印机的设置。

在 Windows 和 macOS 上,使用的是本地打印对话框,这意味着对话框上设置的某些QWidgetQDialog 属性将不会得到尊重。macOS 上的本地打印对话框不支持设置打印机选项,即setOptions() 和setOption() 没有任何作用。

在 Qt 4.4 中,可以使用静态函数在 macOS 上显示工作表。Qt 4.5 不再支持这一功能。如果您需要此功能,请使用QPrintDialog::open() 。

另请参阅 QPageSetupDialogQPrinter

属性文档

options : PrintDialogOptions

该属性包含影响对话框外观的各种选项

默认情况下,所有选项都是禁用的。

应在显示对话框之前设置选项。在对话框可见时设置这些选项,并不能保证立即对对话框产生影响(取决于选项和平台)。

访问功能:

QAbstractPrintDialog::PrintDialogOptions options() const
void setOptions(QAbstractPrintDialog::PrintDialogOptions options)

另请参阅 setOption() 和testOption()。

成员函数文档

[explicit] QPrintDialog::QPrintDialog(QWidget *parent = nullptr)

使用给定的parent 构建打印对话框。

[explicit] QPrintDialog::QPrintDialog(QPrinter *printer, QWidget *parent = nullptr)

为给定的printer 和给定的parent 构建一个新的模式打印机对话框。

[virtual noexcept] QPrintDialog::~QPrintDialog()

销毁打印对话框。

[signal] void QPrintDialog::accepted(QPrinter *printer)

当用户接受打印对话框中设置的值时会发出该信号。printer 参数包括应用设置的打印机。

[override virtual] void QPrintDialog::done(int result)

重实现:QDialog::done(int r)。

关闭对话框并将其结果代码设为result 。如果使用exec() 显示此对话框,done() 将导致本地事件循环结束,exec() 将返回result

注意: 此函数不适用于 Mac macOS 和 Windows 平台上的本地打印对话框,因为该对话框必须是模式对话框,只有用户才能关闭它。

另请参阅 QDialog::done()。

[override virtual] int QPrintDialog::exec()

重新实现:QDialog::exec().

void QPrintDialog::open(QObject *receiver, const char *member)

这是一个重载函数。

打开对话框,并将accepted() 信号连接到receivermember 指定的槽。

关闭对话框时,信号将从槽中断开。

QPrinter *QPrintDialog::printer()

返回打印机对话框所使用的打印机。这在使用QPrintDialog::open() 方法时非常有用。

void QPrintDialog::setOption(QAbstractPrintDialog::PrintDialogOption option, bool on = true)

如果on 为 true,则设置option 为启用状态;否则,清除给定的option

另请参阅 optionstestOption()。

[override virtual] void QPrintDialog::setVisible(bool visible)

重实现:QDialog::setVisible(bool visible)。

bool QPrintDialog::testOption(QAbstractPrintDialog::PrintDialogOption option) const

如果给定的option 已启用,则返回true ;否则返回 false。

另请参阅 optionssetOption()。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.