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::A0 | 3 | 841 x 1189 毫米 |
QPageSize::A1 | 4 | 594 × 841 毫米 |
QPageSize::A2 | 5 | 420 × 594 毫米 |
QPageSize::A3 | 6 | 297 × 420 毫米 |
QPageSize::A4 | 7 | 210 × 297 毫米,8.26 × 11.69 英寸 |
QPageSize::A5 | 8 | 148 × 210 毫米 |
QPageSize::A6 | 9 | 105 × 148 毫米 |
QPageSize::A7 | 10 | 74 × 105 毫米 |
QPageSize::A8 | 11 | 52 × 74 毫米 |
QPageSize::A9 | 12 | 37 × 52 毫米 |
QPageSize::B0 | 14 | 1000 × 1414 毫米 |
QPageSize::B1 | 15 | 707 × 1000 毫米 |
QPageSize::B2 | 16 | 500 × 707 毫米 |
QPageSize::B3 | 17 | 353 × 500 毫米 |
QPageSize::B4 | 18 | 250 × 353 毫米 |
QPageSize::B5 | 19 | 176 × 250 毫米,6.93 × 9.84 英寸 |
QPageSize::B6 | 20 | 125 × 176 毫米 |
QPageSize::B7 | 21 | 88 × 125 毫米 |
QPageSize::B8 | 22 | 62 × 88 毫米 |
QPageSize::B9 | 23 | 44 × 62 毫米 |
QPageSize::B10 | 24 | 31 × 44 毫米 |
QPageSize::C5E | 25 | 163 × 229 毫米 |
QPageSize::Comm10E | 26 | 105 × 241 毫米,美国通用10号信封 |
QPageSize::DLE | 27 | 110 × 220 毫米 |
QPageSize::Executive | 2 | 7.5 × 10 英寸,190.5 × 254 毫米 |
QPageSize::Folio | 28 | 210 × 330 毫米 |
QPageSize::Ledger | 29 | 431.8 × 279.4 毫米 |
QPageSize::Legal | 1 | 8.5 x 14 英寸,215.9 x 355.6 毫米 |
QPageSize::Letter | 0 | 8.5 x 11 英寸,215.9 x 279.4 毫米 |
QPageSize::Tabloid | 30 | 279.4 × 431.8 毫米 |
QPageSize::Custom | 31 | 未知,或用户自定义尺寸。 |
QPageSize::A10 | 13 | |
QPageSize::A3Extra | 32 | |
QPageSize::A4Extra | 33 | |
QPageSize::A4Plus | 34 | |
QPageSize::A4Small | 35 | |
QPageSize::A5Extra | 36 | |
QPageSize::B5Extra | 37 | |
QPageSize::JisB0 | 38 | |
QPageSize::JisB1 | 39 | |
QPageSize::JisB2 | 40 | |
QPageSize::JisB3 | 41 | |
QPageSize::JisB4 | 42 | |
QPageSize::JisB5 | 43 | |
QPageSize::JisB6 | 44 | , |
QPageSize::JisB7 | 45 | |
QPageSize::JisB8 | 46 | |
QPageSize::JisB9 | 47 | |
QPageSize::JisB10 | 48 | |
QPageSize::AnsiA | Letter | = 信件 |
QPageSize::AnsiB | Ledger | = 分类账 |
QPageSize::AnsiC | 49 | |
QPageSize::AnsiD | 50 | |
QPageSize::AnsiE | 51 | |
QPageSize::LegalExtra | 52 | |
QPageSize::LetterExtra | 53 | |
QPageSize::LetterPlus | 54 | |
QPageSize::LetterSmall | 55 | |
QPageSize::TabloidExtra | 56 | |
QPageSize::ArchA | 57 | |
QPageSize::ArchB | 58 | |
QPageSize::ArchC | 59 | |
QPageSize::ArchD | 60 | |
QPageSize::ArchE | 61 | |
QPageSize::Imperial7x9 | 62 | |
QPageSize::Imperial8x10 | 63 | |
QPageSize::Imperial9x11 | 64 | |
QPageSize::Imperial9x12 | 65 | |
QPageSize::Imperial10x11 | 66 | |
QPageSize::Imperial10x13 | 67 | |
QPageSize::Imperial10x14 | 68 | |
QPageSize::Imperial12x11 | 69 | |
QPageSize::Imperial15x11 | 70 | |
QPageSize::ExecutiveStandard | 71 | |
QPageSize::Note | 72 | |
QPageSize::Quarto | 73 | |
QPageSize::Statement | 74 | |
QPageSize::SuperA | 75 | |
QPageSize::SuperB | 76 | |
QPageSize::Postcard | 77 | |
QPageSize::DoublePostcard | 78 | |
QPageSize::Prc16K | 79 | |
QPageSize::Prc32K | 80 | |
QPageSize::Prc32KBig | 81 | |
QPageSize::FanFoldUS | 82 | |
QPageSize::FanFoldGerman | 83 | |
QPageSize::FanFoldGermanLegal | 84 | |
QPageSize::EnvelopeB4 | 85 | |
QPageSize::EnvelopeB5 | 86 | |
QPageSize::EnvelopeB6 | 87 | |
QPageSize::EnvelopeC0 | 88 | |
QPageSize::EnvelopeC1 | 89 | |
QPageSize::EnvelopeC2 | 90 | |
QPageSize::EnvelopeC3 | 91 | |
QPageSize::EnvelopeC4 | 92 | |
QPageSize::EnvelopeC5 | C5E | = C5E |
QPageSize::EnvelopeC6 | 93 | |
QPageSize::EnvelopeC65 | 94 | |
QPageSize::EnvelopeC7 | 95 | |
QPageSize::EnvelopeDL | DLE | = DLE |
QPageSize::Envelope9 | 96 | |
QPageSize::Envelope10 | Comm10E | = Comm10E |
QPageSize::Envelope11 | 97 | |
QPageSize::Envelope12 | 98 | |
QPageSize::Envelope14 | 99 | |
QPageSize::EnvelopeMonarch | 100 | |
QPageSize::EnvelopePersonal | 101 | |
QPageSize::EnvelopeChou3 | 102 | |
QPageSize::EnvelopeChou4 | 103 | |
QPageSize::EnvelopeInvite | 104 | |
QPageSize::EnvelopeItalian | 105 | |
QPageSize::EnvelopeKaku2 | 106 | |
QPageSize::EnvelopeKaku3 | 107 | |
QPageSize::EnvelopePrc1 | 108 | |
QPageSize::EnvelopePrc2 | 109 | |
QPageSize::EnvelopePrc3 | 110 | |
QPageSize::EnvelopePrc4 | 111 | |
QPageSize::EnvelopePrc5 | 112 | |
QPageSize::EnvelopePrc6 | 113 | |
QPageSize::EnvelopePrc7 | 114 | |
QPageSize::EnvelopePrc8 | 115 | |
QPageSize::EnvelopePrc9 | 116 | |
QPageSize::EnvelopePrc10 | 117 | |
QPageSize::EnvelopeYou4 | 118 | |
QPageSize::LastPageSize | EnvelopeYou4 | = EnvelopeYou4 |
由于历史原因,QPageSize::Executive 与标准的 PostScript 和 Windows Executive 尺寸并不一致,请改用 QPageSize::ExecutiveStandard。
PostScript 标准尺寸 QPageSize::Folio 与 Windows 的 DMPAPER_FOLIO 尺寸不同,如有需要,请使用 PostScript 标准尺寸 QPageSize::FanFoldGermanLegal。
enum QPageSize::SizeMatchPolicy
| 常数 | 值 | 描述 |
|---|---|---|
QPageSize::FuzzyMatch | 0 | 如果符合公差范围,则视为符合标准页面尺寸。 |
QPageSize::FuzzyOrientationMatch | 1 | 只要在公差范围内,无论纵横方向如何,均匹配为标准页面尺寸。 |
QPageSize::ExactMatch | 2 | 仅当尺寸完全匹配时,才匹配标准页面尺寸。 |
enum QPageSize::Unit
此枚举类型用于指定页面尺寸的计量单位。
| 常量 | 值 | 描述 |
|---|---|---|
QPageSize::Millimeter | 0 | |
QPageSize::Point | 1 | 1/72英寸 |
QPageSize::Inch | 2 | |
QPageSize::Pica | 3 | 1/72英尺,1/6英寸,12点 |
QPageSize::Didot | 4 | 1/72法式英寸,0.375毫米 |
QPageSize::Cicero | 5 | 1/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 则采用英寸为单位。
对于自定义页面尺寸,此值即为创建页面尺寸对象时所使用的原始尺寸。
另请参阅 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 中的页面矩形。
QRect QPageSize::rectPixels(int resolution) const
返回位于给定坐标resolution 处、以设备像素为单位的页面矩形。
QRect QPageSize::rectPoints() const
返回以PostScript点(1/72英寸)为单位的页面矩形。
QSizeF QPageSize::size(QPageSize::Unit units) const
返回指定units 中的页面大小。
[static] QSizeF QPageSize::size(QPageSize::PageSizeId pageSizeId, QPageSize::Unit units)
返回标准pageSizeId 在所请求的units 中的大小。
QSize QPageSize::sizePixels(int resolution) const
返回给定resolution 处页面以设备像素为单位的尺寸。
[static] QSize QPageSize::sizePixels(QPageSize::PageSizeId pageSizeId, int resolution)
返回给定resolution 在标准pageSizeId 中的尺寸(以设备像素为单位)。
QSize QPageSize::sizePoints() const
返回页面大小(单位为Postscript点,即1/72英寸)。
[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。
© 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.