QPageSize 类

QPageSize 类描述了定义的页面大小及其名称。 更多...

头文件 #include <QPageSize>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui

公共类型

枚举PageSizeId { A0, A1, A2, A3, A4, …, LastPageSize }
枚举SizeMatchPolicy { FuzzyMatch, FuzzyOrientationMatch, ExactMatch }
枚举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()
QSizeFdefinitionSize() const
QPageSize::UnitdefinitionUnits() const
QPageSize::PageSizeIdid() const
boolisEquivalentTo(const QPageSize &other) const
boolisValid() const
QStringkey() const
QStringname() const
QRectFrect(QPageSize::Unit units) const
QRectrectPixels(int resolution) const
QRectrectPoints() const
QSizeFsize(QPageSize::Unit units) const
QSizesizePixels(int resolution) const
QSizesizePoints() const
voidswap(QPageSize &other)
intwindowsId() const
QPageSize &operator=(QPageSize &&other)
QPageSize &operator=(const QPageSize &other)

静态公共成员

QSizeFdefinitionSize(QPageSize::PageSizeId pageSizeId)
QPageSize::UnitdefinitionUnits(QPageSize::PageSizeId pageSizeId)
QPageSize::PageSizeIdid(const QSize &pointSize, QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)
QPageSize::PageSizeIdid(const QSizeF &size, QPageSize::Unit units, QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)
QPageSize::PageSizeIdid(int windowsId)
QStringkey(QPageSize::PageSizeId pageSizeId)
QStringname(QPageSize::PageSizeId pageSizeId)
QSizeFsize(QPageSize::PageSizeId pageSizeId, QPageSize::Unit units)
QSizesizePixels(QPageSize::PageSizeId pageSizeId, int resolution)
QSizesizePoints(QPageSize::PageSizeId pageSizeId)
intwindowsId(QPageSize::PageSizeId pageSizeId)
booloperator!=(const QPageSize &lhs, const QPageSize &rhs)
booloperator==(const QPageSize &lhs, const QPageSize &rhs)

详细说明

此类实现了对Adobe Postscript PPD标准v4.3中定义的一组标准页面尺寸的支持。它定义了以点、毫米和英寸为单位的标准的页面尺寸集合,并确保这些尺寸得到一致使用。也可以使用其他尺寸单位,但将为计算结果,因此可能并非始终一致。定义的点尺寸总是整数,其他尺寸可以是单位的分数。

定义的尺寸总是以宽度 x 高度顺序,没有隐含的页面方向。请注意,定义页面尺寸时,宽度可能大于高度,例如 QPageSize::Ledger,因此不能依靠比较宽度和高度值来确定页面方向。

例如,A4按标准定义为210mm x 297mm,8.27in x 11.69in,或595pt x 842pt。

您还可以定义具有自定义名称的自定义页面尺寸和任何您想要的单位,并将此单位尺寸保留并用作其他单位尺寸计算的基础。

在创建使用自定义QSize的QPageSize时,可以选择QPageSize是否尝试将大小匹配到标准页面尺寸。默认情况下,QPaperSize使用FuzzyMatch模式,即如果给定的页面尺寸与定义的标准尺寸在3个Postscript点之内,则将其匹配到标准页面尺寸。您可以覆盖此要求以请求仅进行精确匹配,但这不建议这样做,因为单位之间的转换可以轻松丢失3个点,导致页面尺寸不正确。

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

此类还提供了将页面尺寸ID转换为各种尺寸并从这些尺寸转换回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::AnsiA信封= 信封
QPageSize::AnsiB大账本= 大账本
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。

枚举 QPageSize::SizeMatchPolicy

常数说明
QPageSize::FuzzyMatch0在容差范围内匹配到标准页大小。
QPageSize::FuzzyOrientationMatch1无论方向如何,只要在容差范围内就匹配到标准页大小。
QPageSize::ExactMatch2只有当大小完全匹配时才匹配到标准页大小。

枚举 QPageSize::Unit

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

常数说明
QPageSize::Millimeter0 
QPageSize::Point1英寸的1/72
QPageSize::Inch2 
QPageSize::Pica3英尺的1/72,英寸的1/6,12点
QPageSize::Didot4法国英寸的1/72,0.375毫米
QPageSize::Cicero5法国英寸的1/6,12 Didot,4.5毫米

成员函数文档

QPageSize::QPageSize()

创建一个空的QPageSize。

QPageSize::QPageSize(QPageSize::PageSizeId pageSize)

创建一个标准pageSize的QPageSize。

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

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

使用匹配的matchPolicy创建一个点数pointSize的QPageSize。

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

如果给定的pointSize不是标准QPageSize::PageSizeId,则创建一个QPageSize::Custom大小。

如果name为null,则使用标准的本地化名称。如果是自定义页面大小,则创建格式为"Custom (宽度 x 高度)"的自定义名称。

matchPolicy的默认值为FuzzyMatch

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

创建一个给定sizeunits的自定义页。

如果给定的尺寸与标准QPageSize::PageSizeId匹配,则将使用该页尺寸。注意,如果匹配策略FuzzyMatch,这可能会导致尺寸进行调整以匹配标准尺寸。要防止这种情况发生,请使用匹配策略ExactMatch

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

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

QPageSize::QPageSize(const QPageSize &other)

复制构造函数,将other复制到本实例。

[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

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

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

如果使用FuzzyMatch,则返回的PageSizeId的点大小可能与传入的pointSize不完全匹配。在执行任何计算之前,您应使用返回的PageSizeId调用QPageSize::sizePoints()以获取PageSizeId的实际点大小。

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

使用给定的matchPolicy返回给定的sizeunits的标准QPageSize::PageSizeId

如果使用FuzzyMatch,则返回的PageSizeId的单位大小可能与传入的size不完全匹配。在执行任何计算之前,您应使用返回的PageSizeId调用QPageSize::size()以获取PageSizeId的实际单位大小。

[静态] QPageSize::PageSizeId QPageSize::id(int windowsId)

返回给定Windows DMPAPER枚举值windowsIdPageSizeId

如果没有匹配的PageSizeId,则返回QPageSize::Custom

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

如果此页面等于other页面(即页面具有相同的尺寸,无论其他属性(如名称)如何),则返回true

bool QPageSize::isValid() const

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

如果使用无效的PageSizeId创建、具有负值或无效的QSizeQSizeF,或调用null构造函数,则页面大小可能无效。

QString QPageSize::key() const

返回页面大小的唯一密钥。

默认情况下,这是页面大小的PPD标准mediaOption关键字,或PPD自定义格式密钥。如果QPageSize实例是从打印设备获得的,则这将是打印设备提供的密钥,可能不同于标准密钥。

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

此键绝不应该显示给最终用户,它仅是内部键。要使用人类可读的名称,请使用 name()。

另请参阅 name

[静态] QString QPageSize::key(QPageSize::PageSizeId pageSizeId)

返回标准 pageSizeId 的 PPD 媒体选项关键字。

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

QString QPageSize::name() const

返回页面大小的人类可读名称。

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

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

[静态] 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将无效。

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

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

QSize QPageSize::sizePixels(int resolution) const

返回在给定 resolution 的设备像素中的页面大小。

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

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

返回给定resolution的默认pageSizeId在设备像素中的大小。

QSize QPageSize::sizePoints() const

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

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

[静态] 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()。

[静态] int QPageSize::windowsId(QPageSize::PageSizeId pageSizeId)

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

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

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

other移动分配给此QPageSize实例,将管理指针的所有权转移到此实例。

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。当前属性是大小和名称。

© 2024 The Qt Company Ltd. 本文档中包含的贡献信息均为各自所有者的版权。提供的文档的使用受《GNU自由文档许可证1.3版》的约束,该许可证由自由软件基金会发布。Qt及其相应标志为芬兰及其它国家/地区的Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。