本页内容

QPageSize Class

QPageSize 类用于描述已定义页面大小的大小和名称。更多内容...

头文件: #include <QPageSize>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

公共类型

enum PageSizeId { A0, A1, A2, A3, A4, …, LastPageSize }
enum SizeMatchPolicy { FuzzyMatch, FuzzyOrientationMatch, ExactMatch }
enum Unit { Millimeter, Point, Inch, Pica, Didot, Cicero }

公共函数

QPageSize()
QPageSize(QPageSize::PageSizeId pageSize)
QPageSize(const QSize &pointSize, const QString &name = QString(), QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)
QPageSize(const QSizeF &size, QPageSize::Unit units, const QString &name = QString(), QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)
QPageSize(const QPageSize &other)
~QPageSize()
QSizeF definitionSize() const
QPageSize::Unit definitionUnits() const
QPageSize::PageSizeId id() const
bool isEquivalentTo(const QPageSize &other) const
bool isValid() const
QString key() const
QString name() const
QRectF rect(QPageSize::Unit units) const
QRect rectPixels(int resolution) const
QRect rectPoints() const
QSizeF size(QPageSize::Unit units) const
QSize sizePixels(int resolution) const
QSize sizePoints() const
void swap(QPageSize &other)
int windowsId() const
QPageSize &operator=(QPageSize &&other)
QPageSize &operator=(const QPageSize &other)

静态公共成员

QSizeF definitionSize(QPageSize::PageSizeId pageSizeId)
QPageSize::Unit definitionUnits(QPageSize::PageSizeId pageSizeId)
QPageSize::PageSizeId id(int windowsId)
QPageSize::PageSizeId id(const QSize &pointSize, QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)
QPageSize::PageSizeId id(const QSizeF &size, QPageSize::Unit units, QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)
QString key(QPageSize::PageSizeId pageSizeId)
QString name(QPageSize::PageSizeId pageSizeId)
QSizeF size(QPageSize::PageSizeId pageSizeId, QPageSize::Unit units)
QSize sizePixels(QPageSize::PageSizeId pageSizeId, int resolution)
QSize sizePoints(QPageSize::PageSizeId pageSizeId)
int windowsId(QPageSize::PageSizeId pageSizeId)
bool operator!=(const QPageSize &lhs, const QPageSize &rhs)
bool operator==(const QPageSize &lhs, const QPageSize &rhs)

详细说明

该类实现了对 Adobe PostScript PPD 标准 v4.3 中定义的一组标准页面尺寸的支持。它定义了以点、毫米和英寸为单位的标准页面尺寸集,并确保这些尺寸被一致地使用。虽然可以使用其他尺寸单位,但这些单位将作为计算结果,因此可能无法始终保持一致。 定义的点尺寸始终为整数,所有其他尺寸可以是单位的分数。

定义的尺寸始终按“宽度 × 高度”的顺序排列,且不隐含页面方向。请注意,可能存在宽度大于高度的页面尺寸定义,例如QPageSize::Ledger ,因此不能依赖比较宽度和高度值来确定页面方向。

例如,标准中将 A4 定义为 210mm × 297mm、8.27in × 11.69in 或 595pt × 842pt。

您还可以使用自定义名称以任何单位定义自定义页面尺寸,该单位尺寸将被保留,并作为所有其他单位尺寸计算的基础。

使用自定义QSize 创建QPageSize时,您可以选择是否让QPageSize尝试将该尺寸与标准页面尺寸匹配。默认情况下,QPaperSize采用FuzzyMatch 模式,即当给定页面尺寸与定义的标准尺寸的偏差在3个PostScript点以内时,会将其匹配到标准页面尺寸。 您可以覆盖此行为以要求仅进行精确匹配,但不建议这样做,因为单位之间的转换很容易导致偏差超过3个点,从而导致页面尺寸不正确。

还可以通过查询打印设备支持的页面尺寸来获取 QPageSize 实例。在这种情况下,返回的本地化名称是由打印机自身定义的。请注意,打印设备可能不支持当前默认区域设置的语言。

该类还提供了将页面大小 ID 与各种单位大小相互转换的便捷方法。

另请参阅 QPagedPaintDevice 和QPdfWriter 。

成员类型文档

enum QPageSize::PageSizeId

此枚举类型列出了PostScript PPD标准中定义的可用页面尺寸。这些值在QPagedPaintDevice 和QPrinter 中也有所体现。

已定义的尺寸包括:

常量值描述
QPageSize::A03841 x 1189 毫米
QPageSize::A14594 × 841 毫米
QPageSize::A25420 × 594 毫米
QPageSize::A36297 × 420 毫米
QPageSize::A47210 × 297 毫米,8.26 × 11.69 英寸
QPageSize::A58148 × 210 毫米
QPageSize::A69105 × 148 毫米
QPageSize::A71074 × 105 毫米
QPageSize::A81152 × 74 毫米
QPageSize::A91237 × 52 毫米
QPageSize::B0141000 × 1414 毫米
QPageSize::B115707 × 1000 毫米
QPageSize::B216500 × 707 毫米
QPageSize::B317353 × 500 毫米
QPageSize::B418250 × 353 毫米
QPageSize::B519176 × 250 毫米,6.93 × 9.84 英寸
QPageSize::B620125 × 176 毫米
QPageSize::B72188 × 125 毫米
QPageSize::B82262 × 88 毫米
QPageSize::B92344 × 62 毫米
QPageSize::B102431 × 44 毫米
QPageSize::C5E25163 × 229 毫米
QPageSize::Comm10E26105 × 241 毫米,美国通用10号信封
QPageSize::DLE27110 × 220 毫米
QPageSize::Executive27.5 × 10 英寸,190.5 × 254 毫米
QPageSize::Folio28210 × 330 毫米
QPageSize::Ledger29431.8 × 279.4 毫米
QPageSize::Legal18.5 x 14 英寸,215.9 x 355.6 毫米
QPageSize::Letter08.5 x 11 英寸,215.9 x 279.4 毫米
QPageSize::Tabloid30279.4 × 431.8 毫米
QPageSize::Custom31未知,或用户自定义尺寸。
QPageSize::A1013 
QPageSize::A3Extra32 
QPageSize::A4Extra33 
QPageSize::A4Plus34 
QPageSize::A4Small35 
QPageSize::A5Extra36 
QPageSize::B5Extra37 
QPageSize::JisB038 
QPageSize::JisB139 
QPageSize::JisB240 
QPageSize::JisB341 
QPageSize::JisB442 
QPageSize::JisB543 
QPageSize::JisB644,
QPageSize::JisB745 
QPageSize::JisB846 
QPageSize::JisB947 
QPageSize::JisB1048 
QPageSize::AnsiALetter= 信件
QPageSize::AnsiBLedger= 分类账
QPageSize::AnsiC49 
QPageSize::AnsiD50 
QPageSize::AnsiE51 
QPageSize::LegalExtra52 
QPageSize::LetterExtra53 
QPageSize::LetterPlus54 
QPageSize::LetterSmall55 
QPageSize::TabloidExtra56 
QPageSize::ArchA57 
QPageSize::ArchB58 
QPageSize::ArchC59 
QPageSize::ArchD60 
QPageSize::ArchE61 
QPageSize::Imperial7x962 
QPageSize::Imperial8x1063 
QPageSize::Imperial9x1164 
QPageSize::Imperial9x1265 
QPageSize::Imperial10x1166 
QPageSize::Imperial10x1367 
QPageSize::Imperial10x1468 
QPageSize::Imperial12x1169 
QPageSize::Imperial15x1170 
QPageSize::ExecutiveStandard71 
QPageSize::Note72 
QPageSize::Quarto73 
QPageSize::Statement74 
QPageSize::SuperA75 
QPageSize::SuperB76 
QPageSize::Postcard77 
QPageSize::DoublePostcard78 
QPageSize::Prc16K79 
QPageSize::Prc32K80 
QPageSize::Prc32KBig81 
QPageSize::FanFoldUS82 
QPageSize::FanFoldGerman83 
QPageSize::FanFoldGermanLegal84 
QPageSize::EnvelopeB485 
QPageSize::EnvelopeB586 
QPageSize::EnvelopeB687 
QPageSize::EnvelopeC088 
QPageSize::EnvelopeC189 
QPageSize::EnvelopeC290 
QPageSize::EnvelopeC391 
QPageSize::EnvelopeC492 
QPageSize::EnvelopeC5C5E= C5E
QPageSize::EnvelopeC693 
QPageSize::EnvelopeC6594 
QPageSize::EnvelopeC795 
QPageSize::EnvelopeDLDLE= DLE
QPageSize::Envelope996 
QPageSize::Envelope10Comm10E= Comm10E
QPageSize::Envelope1197 
QPageSize::Envelope1298 
QPageSize::Envelope1499 
QPageSize::EnvelopeMonarch100 
QPageSize::EnvelopePersonal101 
QPageSize::EnvelopeChou3102 
QPageSize::EnvelopeChou4103 
QPageSize::EnvelopeInvite104 
QPageSize::EnvelopeItalian105 
QPageSize::EnvelopeKaku2106 
QPageSize::EnvelopeKaku3107 
QPageSize::EnvelopePrc1108 
QPageSize::EnvelopePrc2109 
QPageSize::EnvelopePrc3110 
QPageSize::EnvelopePrc4111 
QPageSize::EnvelopePrc5112 
QPageSize::EnvelopePrc6113 
QPageSize::EnvelopePrc7114 
QPageSize::EnvelopePrc8115 
QPageSize::EnvelopePrc9116 
QPageSize::EnvelopePrc10117 
QPageSize::EnvelopeYou4118 
QPageSize::LastPageSizeEnvelopeYou4= EnvelopeYou4

由于历史原因,QPageSize::Executive 与标准的 PostScript 和 Windows Executive 尺寸并不一致,请改用 QPageSize::ExecutiveStandard。

PostScript 标准尺寸 QPageSize::Folio 与 Windows 的 DMPAPER_FOLIO 尺寸不同,如有需要,请使用 PostScript 标准尺寸 QPageSize::FanFoldGermanLegal。

enum QPageSize::SizeMatchPolicy

常数值描述
QPageSize::FuzzyMatch0如果符合公差范围,则视为符合标准页面尺寸。
QPageSize::FuzzyOrientationMatch1只要在公差范围内,无论纵横方向如何,均匹配为标准页面尺寸。
QPageSize::ExactMatch2仅当尺寸完全匹配时,才匹配标准页面尺寸。

enum QPageSize::Unit

此枚举类型用于指定页面尺寸的计量单位。

常量值描述
QPageSize::Millimeter0 
QPageSize::Point11/72英寸
QPageSize::Inch2 
QPageSize::Pica31/72英尺,1/6英寸,12点
QPageSize::Didot41/72法式英寸,0.375毫米
QPageSize::Cicero51/6法式英寸,12迪多,4.5毫米

成员函数文档

QPageSize::QPageSize()

创建一个为空的 QPageSize。

QPageSize::QPageSize(QPageSize::PageSizeId pageSize)

创建一个标准pageSize 格式的QPageSize对象。

如果pageSize 为QPageSize::Custom ,则生成的QPageSize将无效。请改用自定义尺寸构造函数。

[explicit] QPageSize::QPageSize(const QSize &pointSize, const QString &name = QString(), QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)

使用匹配的matchPolicy ,根据给定的pointSize (以点为单位)创建一个QPageSize。

如果给定的pointSize 与标准QPageSize::PageSizeId 匹配,则将使用该页面大小。请注意,如果matchPolicy 为FuzzyMatch ,这可能会导致pointSize 被调整为标准大小。要防止这种情况发生,请改用matchPolicy 的值ExactMatch 。

如果给定的pointSize 不是标准页面尺寸(QPageSize::PageSizeId ),则会创建一个QPageSize::Custom 尺寸。

如果name 为空,则使用标准本地化名称。如果是自定义页面尺寸,则会创建格式为“自定义 (宽度 x 高度)”的自定义名称。

matchPolicy 的默认值为FuzzyMatch 。

[explicit] QPageSize::QPageSize(const QSizeF &size, QPageSize::Unit units, const QString &name = QString(), QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)

在units 中创建指定size 的自定义页面。

如果给定的size 与标准QPageSize::PageSizeId 匹配,则将使用该页面尺寸。请注意,如果matchPolicy 为FuzzyMatch ,这可能会导致size 被调整为标准尺寸。为防止这种情况发生,请改用matchPolicy 值ExactMatch 。

如果给定的size 不是标准QPageSize::PageSizeId ,则会创建一个QPageSize::Custom 尺寸。原始单位尺寸将被保留,并作为所有其他单位尺寸计算的基础。

如果name 为null,则将创建一个自定义名称,格式为“Custom (宽度 x 高度)”,其中尺寸以提供的单位表示。

QPageSize::QPageSize(const QPageSize &other)

复制构造函数,将 `other ` 复制到 `this` 中。

[noexcept] QPageSize::~QPageSize()

销毁该页面。

QSizeF QPageSize::definitionSize() const

返回页面大小的定义尺寸。

对于标准页面尺寸,该值即为相关标准中定义的尺寸,例如 ISO A4 采用毫米为单位,而 ANSI Letter 则采用英寸为单位。

对于自定义页面尺寸,此值即为创建页面尺寸对象时所使用的原始尺寸。

如果QPageSize 无效,则QSizeF 也将无效。

另请参阅 definitionUnits()。

[static] QSizeF QPageSize::definitionSize(QPageSize::PageSizeId pageSizeId)

返回标准pageSizeId 的定义大小。

要获取定义单位,请调用QPageSize::definitionUnits()。

QPageSize::Unit QPageSize::definitionUnits() const

返回页面尺寸的定义单位。

对于标准页面尺寸,此处将采用相关标准中定义的单位,例如 ISO A4 采用毫米为单位,而 ANSI Letter 则采用英寸为单位。

对于自定义页面尺寸,此处将返回用于创建该页面尺寸对象的原始单位。

如果QPageSize 无效,则QPageSize::Unit 也将无效。

另请参阅 definitionSize()。

[static] QPageSize::Unit QPageSize::definitionUnits(QPageSize::PageSizeId pageSizeId)

返回标准pageSizeId 的定义单位。

要获取定义尺寸,请调用QPageSize::definitionSize()。

QPageSize::PageSizeId QPageSize::id() const

返回该页面的标准QPageSize::PageSizeId ,或QPageSize::Custom 。

如果QPageSize 无效,则ID将为QPageSize::Custom 。

[static] QPageSize::PageSizeId QPageSize::id(int windowsId)

返回给定 Windows DMPAPER 枚举值windowsId 对应的PageSizeId 。

如果不存在匹配的PageSizeId ,则返回QPageSize::Custom 。

[static] QPageSize::PageSizeId QPageSize::id(const QSize &pointSize, QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)

使用给定的matchPolicy ,以点为单位返回给定pointSize 的标准QPageSize::PageSizeId 。

如果使用FuzzyMatch ,则返回的PageSizeId 的点大小可能与您传入的pointSize 不完全一致。在将PageSizeId 用于任何计算之前,您应使用返回的PageSizeId 调用QPageSize::sizePoints(),以确定 的实际点大小。

[static] QPageSize::PageSizeId QPageSize::id(const QSizeF &size, QPageSize::Unit units, QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)

使用给定的matchPolicy ,返回给定的size 在units 中的标准QPageSize::PageSizeId 。

如果使用FuzzyMatch ,则返回的PageSizeId 的单位大小可能与您传入的size 不完全一致。在将该 用于任何计算之前,您应使用返回的PageSizeId 调用QPageSize::size(),以确定PageSizeId 的实际单位大小。

bool QPageSize::isEquivalentTo(const QPageSize &other) const

如果该页面与other 页面等价,即无论名称等其他属性如何,该页面的尺寸都与之相同,则返回true 。

bool QPageSize::isValid() const

如果该页面大小有效,则返回true 。

如果使用无效的 `PageSizeId` 创建页面大小,或者 `QSize ` 或 `QSizeF` 为负数或无效,或者使用了空构造函数,则该页面大小可能无效。

QString QPageSize::key() const

返回页面大小的唯一键。

默认情况下,这是 PPD 标准 mediaOption 关键字对应的页面大小,或是 PPD 自定义格式键。如果QPageSize 实例是从打印设备获取的,则此处将使用打印设备提供的键,该键可能与标准键不同。

如果 `QPageSize ` 无效,则该键将为空字符串。

该键绝不应显示给最终用户,它仅作为内部键使用。如需可读名称,请使用name()。

另请参阅 name()。

[static] QString QPageSize::key(QPageSize::PageSizeId pageSizeId)

返回标准pageSizeId 中的PPD mediaOption关键字。

如果QPageSize 无效,则该键将为空。

QString QPageSize::name() const

返回页面大小的本地化、易于阅读的名称。

如果QPageSize 实例是从打印设备获取的,则使用打印设备提供的名称。请注意,打印设备可能不支持当前的默认区域设置语言。

如果QPageSize 无效,则名称将为空字符串。

[static] QString QPageSize::name(QPageSize::PageSizeId pageSizeId)

返回标准pageSizeId 的本地化名称。

如果QPageSize 无效,则名称为空。

QRectF QPageSize::rect(QPageSize::Unit units) const

返回所需units 中的页面矩形。

如果QPageSize 无效,则QRect 也将无效。

QRect QPageSize::rectPixels(int resolution) const

返回位于给定坐标resolution 处、以设备像素为单位的页面矩形。

如果QPageSize 无效,则QRect 也将无效。

QRect QPageSize::rectPoints() const

返回以PostScript点(1/72英寸)为单位的页面矩形。

如果QPageSize 无效,则QRect 也将无效。

QSizeF QPageSize::size(QPageSize::Unit units) const

返回指定units 中的页面大小。

如果QPageSize 无效,则QSizeF 也将无效。

[static] QSizeF QPageSize::size(QPageSize::PageSizeId pageSizeId, QPageSize::Unit units)

返回标准pageSizeId 在所请求的units 中的大小。

QSize QPageSize::sizePixels(int resolution) const

返回给定resolution 处页面以设备像素为单位的尺寸。

如果QPageSize 无效,则QSize 也将无效。

[static] QSize QPageSize::sizePixels(QPageSize::PageSizeId pageSizeId, int resolution)

返回给定resolution 在标准pageSizeId 中的尺寸(以设备像素为单位)。

QSize QPageSize::sizePoints() const

返回页面大小(单位为Postscript点,即1/72英寸)。

如果QPageSize 无效,则QSize 也将无效。

[static] QSize QPageSize::sizePoints(QPageSize::PageSizeId pageSizeId)

返回标准pageSizeId 的尺寸(单位为点)。

[noexcept] void QPageSize::swap(QPageSize &other)

将此链接QPageSize 替换为other 。此操作非常快速,且从未失败。

int QPageSize::windowsId() const

返回该页面大小的 Windows DMPAPER 枚举值。

并非所有有效的 PPD 页面大小都有对应的 Windows 等效值,在这种情况下将返回 0。

如果QPageSize 无效,则Windows ID将为0。

另请参阅 id()。

[static] int QPageSize::windowsId(QPageSize::PageSizeId pageSizeId)

返回标准pageSizeId 对应的Windows DMPAPER枚举值。

并非所有有效的 PPD 页面尺寸都有对应的 Windows 等效值,在这种情况下将返回 0。

[noexcept] QPageSize &QPageSize::operator=(QPageSize &&other)

将other 通过“move-assign”操作赋值给此QPageSize 实例,从而将该受管指针的所有权转移至该实例。

QPageSize &QPageSize::operator=(const QPageSize &other)

赋值运算符,将other 赋值给this。

相关的非成员

bool operator!=(const QPageSize &lhs, const QPageSize &rhs)

如果页面大小lhs 与页面大小rhs 不一致(即两者的属性不同),则返回true 。当前的属性包括大小和名称。

bool operator==(const QPageSize &lhs, const QPageSize &rhs)

如果页面大小lhs 与页面大小rhs 相等,即两者的属性相同,则返回true 。当前属性包括大小和名称。

© 2026 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.