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 转换为各种单位尺寸的方便方法。

另请参阅 QPagedPaintDeviceQPdfWriter

成员类型文档

enum QPageSize::PageSizeId

该枚举类型列出了 Postscript PPD 标准中定义的可用页面尺寸。这些值在QPagedPaintDeviceQPrinter 中重复。

定义的页面尺寸有

常量说明
QPageSize::A03841 x 1189 毫米
QPageSize::A14594 x 841 毫米
QPageSize::A25420 x 594 毫米
QPageSize::A36297 x 420 毫米
QPageSize::A47210 x 297 毫米,8.26 x 11.69 英寸
QPageSize::A58148 x 210 毫米
QPageSize::A69105 x 148 毫米
QPageSize::A71074 x 105 毫米
QPageSize::A81152 x 74 毫米
QPageSize::A91237 x 52 毫米
QPageSize::B0141000 x 1414 毫米
QPageSize::B115707 x 1000 毫米
QPageSize::B216500 x 707 毫米
QPageSize::B317353 x 500 毫米
QPageSize::B418250 x 353 毫米
QPageSize::B519176 x 250 毫米,6.93 x 9.84 英寸
QPageSize::B620125 x 176 毫米
QPageSize::B72188 x 125 毫米
QPageSize::B82262 x 88 毫米
QPageSize::B92344 x 62 毫米
QPageSize::B102431 x 44 毫米
QPageSize::C5E25163 x 229 毫米
QPageSize::Comm10E26105 x 241 毫米,美国普通 10 号信封
QPageSize::DLE27110 x 220 毫米
QPageSize::Executive27.5 x 10 英寸,190.5 x 254 毫米
QPageSize::Folio28210 x 330 毫米
QPageSize::Ledger29431.8 x 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 x 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::Pica3英尺的 1/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。

如果pageSizeQPageSize::Custom ,那么生成的 QPageSize 将无效。请使用自定义大小构造函数。

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

使用匹配的matchPolicy ,以点为单位创建给定pointSize 的 QPageSize。

如果给定的pointSize 与标准QPageSize::PageSizeId 匹配,则将使用该页面大小。请注意,如果matchPolicyFuzzyMatch ,可能会导致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 匹配,则将使用该页面大小。请注意,如果matchPolicyFuzzyMatch ,可能会导致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 将以英寸为单位。

对于自定义页面尺寸,这将是用于创建页面尺寸对象的原始尺寸。

如果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::PageSizeIdQPageSize::Custom

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

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

返回给定 Windows DMPAPER 枚举值windowsIdPageSizeId

如果没有匹配的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)

使用给定的matchPolicyunits 中返回给定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 ,或负值或无效的QSizeQSizeF ,或空值构造函数创建,页面大小可能无效。

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 Points(1/72 英寸)为单位返回页面矩形。

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

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

以所需的units 返回页面大小。

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

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

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

QSize QPageSize::sizePixels(int resolution) const

以设备像素(Device Pixels)为单位返回给定resolution 的页面大小。

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

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

以设备像素为单位,返回给定resolution 的标准pageSizeId 大小。

QSize QPageSize::sizePoints() const

以 Postscript Points(1/72 英寸)为单位返回页面大小。

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

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

以点为单位返回标准pageSizeId 的大小。

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

QPageSizeother 互换。这一操作非常快速,而且从未出现过故障。

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-assignsotherQPageSize 实例,将托管指针的所有权转移到该实例。

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

赋值运算符,为other 赋值。

相关非会员

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

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

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

如果页面大小lhs 等于页面大小rhs ,即页面大小具有相同属性,则返回true 。当前属性为大小和名称。

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