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 Standard v4.3 中定义的标准页面尺寸集。它定义了以点、毫米和英寸为单位的标准页面尺寸集,并确保这些尺寸得到一致使用。也可使用其他尺寸单位,但计算结果不一定一致。定义的点尺寸总是整数,所有其他尺寸可以是单位的分数。
定义的尺寸总是按照宽 x 高的顺序排列,不隐含页面方向。请注意,定义的页面尺寸有可能宽度大于高度,如QPageSize::Ledger ,因此不能依靠比较宽度和高度值来确定页面方向。
例如,标准将 A4 定义为 210 毫米 x 297 毫米、8.27 英寸 x 11.69 英寸或 595pt x 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 x 841 毫米 |
QPageSize::A2 | 5 | 420 x 594 毫米 |
QPageSize::A3 | 6 | 297 x 420 毫米 |
QPageSize::A4 | 7 | 210 x 297 毫米,8.26 x 11.69 英寸 |
QPageSize::A5 | 8 | 148 x 210 毫米 |
QPageSize::A6 | 9 | 105 x 148 毫米 |
QPageSize::A7 | 10 | 74 x 105 毫米 |
QPageSize::A8 | 11 | 52 x 74 毫米 |
QPageSize::A9 | 12 | 37 x 52 毫米 |
QPageSize::B0 | 14 | 1000 x 1414 毫米 |
QPageSize::B1 | 15 | 707 x 1000 毫米 |
QPageSize::B2 | 16 | 500 x 707 毫米 |
QPageSize::B3 | 17 | 353 x 500 毫米 |
QPageSize::B4 | 18 | 250 x 353 毫米 |
QPageSize::B5 | 19 | 176 x 250 毫米,6.93 x 9.84 英寸 |
QPageSize::B6 | 20 | 125 x 176 毫米 |
QPageSize::B7 | 21 | 88 x 125 毫米 |
QPageSize::B8 | 22 | 62 x 88 毫米 |
QPageSize::B9 | 23 | 44 x 62 毫米 |
QPageSize::B10 | 24 | 31 x 44 毫米 |
QPageSize::C5E | 25 | 163 x 229 毫米 |
QPageSize::Comm10E | 26 | 105 x 241 毫米,美国普通 10 号信封 |
QPageSize::DLE | 27 | 110 x 220 毫米 |
QPageSize::Executive | 2 | 7.5 x 10 英寸,190.5 x 254 毫米 |
QPageSize::Folio | 28 | 210 x 330 毫米 |
QPageSize::Ledger | 29 | 431.8 x 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 x 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 为空,则将创建一个自定义名称,格式为 "自定义(宽 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 调用QPageSize::sizePoints() 以找出PageSizeId 的实际点大小。
[static]
QPageSize::PageSizeId QPageSize::id(const QSizeF &size, QPageSize::Unit units, QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)
使用给定的matchPolicy 在units 中返回给定size 的标准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 Points(1/72 英寸)为单位返回页面矩形。
QSizeF QPageSize::size(QPageSize::Unit units) const
以所需的units 返回页面大小。
[static]
QSizeF QPageSize::size(QPageSize::PageSizeId pageSizeId, QPageSize::Unit units)
返回所请求units 中标准pageSizeId 的大小。
QSize QPageSize::sizePixels(int resolution) const
以设备像素(Device Pixels)为单位返回给定resolution 的页面大小。
[static]
QSize QPageSize::sizePixels(QPageSize::PageSizeId pageSizeId, int resolution)
以设备像素为单位,返回给定resolution 的标准pageSizeId 大小。
QSize QPageSize::sizePoints() const
以 Postscript Points(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)
Move-assignsother 到QPageSize 实例,将托管指针的所有权转移到该实例。
QPageSize &QPageSize::operator=(const QPageSize &other)
赋值运算符,为other 赋值。
© 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.