本页内容

QVersionNumber Class

QVersionNumber 类包含一个由任意数量的分段组成的版本号。更多内容...

头文件: #include <QVersionNumber>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

QVersionNumber 比较

类别可比较类型
strongQVersionNumber

公共类型

(since 6.8) const_iterator
(since 6.8) const_pointer
(since 6.8) const_reference
(since 6.8) const_reverse_iterator
(since 6.8) difference_type
(since 6.8) pointer
(since 6.8) reference
(since 6.8) size_type
(since 6.8) value_type

公共函数

QVersionNumber()
QVersionNumber(QList<int> &&seg)
(since 6.8) QVersionNumber(QSpan<const int> args)
QVersionNumber(const QList<int> &seg)
QVersionNumber(int maj)
QVersionNumber(std::initializer_list<int> args)
QVersionNumber(int maj, int min)
QVersionNumber(int maj, int min, int mic)
(since 6.8) QVersionNumber::const_iterator begin() const
(since 6.8) QVersionNumber::const_iterator cbegin() const
(since 6.8) QVersionNumber::const_iterator cend() const
(since 6.8) QVersionNumber::const_iterator constBegin() const
(since 6.8) QVersionNumber::const_iterator constEnd() const
(since 6.8) QVersionNumber::const_reverse_iterator crbegin() const
(since 6.8) QVersionNumber::const_reverse_iterator crend() const
(since 6.8) QVersionNumber::const_iterator end() const
bool isNormalized() const
bool isNull() const
bool isPrefixOf(const QVersionNumber &other) const
int majorVersion() const
int microVersion() const
int minorVersion() const
QVersionNumber normalized() const
(since 6.8) QVersionNumber::const_reverse_iterator rbegin() const
(since 6.8) QVersionNumber::const_reverse_iterator rend() const
int segmentAt(qsizetype index) const
qsizetype segmentCount() const
QList<int> segments() const
QString toString() const

静态公共成员

QVersionNumber commonPrefix(const QVersionNumber &v1, const QVersionNumber &v2)
int compare(const QVersionNumber &v1, const QVersionNumber &v2)
(since 6.4) QVersionNumber fromString(QAnyStringView string, qsizetype *suffixIndex = nullptr)
bool operator!=(const QVersionNumber &lhs, const QVersionNumber &rhs)
bool operator<(const QVersionNumber &lhs, const QVersionNumber &rhs)
QDataStream &operator<<(QDataStream &out, const QVersionNumber &version)
bool operator<=(const QVersionNumber &lhs, const QVersionNumber &rhs)
bool operator==(const QVersionNumber &lhs, const QVersionNumber &rhs)
bool operator>(const QVersionNumber &lhs, const QVersionNumber &rhs)
bool operator>=(const QVersionNumber &lhs, const QVersionNumber &rhs)
QDataStream &operator>>(QDataStream &in, QVersionNumber &version)

详细说明

QVersionNumber version(1, 2, 3);  // 1.2.3

成员类型文档

[alias, since 6.8] QVersionNumber::const_iterator

[alias, since 6.8] QVersionNumber::const_reverse_iterator

针对一个不透明类的类型定义,该类实现了一个用于遍历QVersionNumber 段的(反向)随机访问迭代器。

注意: QVersionNumber 不支持就地修改分段,因此没有可变迭代器。

这些类型定义于 Qt 6.8 中引入。

[alias, since 6.8] QVersionNumber::const_pointer

[alias, since 6.8] QVersionNumber::const_reference

[alias, since 6.8] QVersionNumber::difference_type

[alias, since 6.8] QVersionNumber::pointer

[alias, since 6.8] QVersionNumber::reference

[alias, since 6.8] QVersionNumber::size_type

[alias, since 6.8] QVersionNumber::value_type

为兼容 STL 而提供。

注意: QVersionNumber 不支持就地修改分段,因此 reference 和const_reference ,以及 pointer 和const_pointer 属于成对的同类型。

这些 typedef 是在 Qt 6.8 中引入的。

成员函数文档

[noexcept] QVersionNumber::QVersionNumber()

生成一个空版本。

另请参阅 isNull()。

[explicit] QVersionNumber::QVersionNumber(QList<int> &&seg)

根据seg 中包含的数字列表,构建一个版本号。

[explicit, since 6.8] QVersionNumber::QVersionNumber(QSpan<const int> args)

根据args 指定的范围构建版本号。

注意:在 Qt 6.8 之前的版本中,QVersionNumber 只能通过QList 、QVarLenthArray 或 std::initializer_list 来构造。

该函数于 Qt 6.8 中引入。

[explicit] QVersionNumber::QVersionNumber(const QList<int> &seg)

根据seg 中包含的数字列表构建一个版本号。

[explicit] QVersionNumber::QVersionNumber(int maj)

构建一个仅包含主版本号的 QVersionNumber 对象:maj 。

QVersionNumber::QVersionNumber(std::initializer_list<int> args)

根据args 指定的std::initializer_list构建一个版本号。

[explicit] QVersionNumber::QVersionNumber(int maj, int min)

构建一个由主版本号maj 和次版本号min 组成的QVersionNumber对象。

[explicit] QVersionNumber::QVersionNumber(int maj, int min, int mic)

构建一个由主版本号、次版本号和微版本号组成的 QVersionNumber,它们分别对应maj 、min 和mic 。

[noexcept, since 6.8] QVersionNumber::const_iterator QVersionNumber::begin() const

[noexcept, since 6.8] QVersionNumber::const_iterator QVersionNumber::cbegin() const

[noexcept, since 6.8] QVersionNumber::const_iterator QVersionNumber::cend() const

[noexcept, since 6.8] QVersionNumber::const_iterator QVersionNumber::constBegin() const

[noexcept, since 6.8] QVersionNumber::const_iterator QVersionNumber::constEnd() const

[noexcept, since 6.8] QVersionNumber::const_iterator QVersionNumber::end() const

[noexcept, since 6.8] QVersionNumber::const_reverse_iterator QVersionNumber::crbegin() const

[noexcept, since 6.8] QVersionNumber::const_reverse_iterator QVersionNumber::crend() const

[noexcept, since 6.8] QVersionNumber::const_reverse_iterator QVersionNumber::rbegin() const

[noexcept, since 6.8] QVersionNumber::const_reverse_iterator QVersionNumber::rend() const

分别返回一个const_iterator 或const_reverse_iterator ,分别指向该版本号的第一个段或最后一个段之后的一个段。

注意: QVersionNumber 不支持就地修改分段,因此没有可变迭代器。

这些函数在 Qt 6.8 中引入。

[static] QVersionNumber QVersionNumber::commonPrefix(const QVersionNumber &v1, const QVersionNumber &v2)

QVersionNumber QVersionNumber::commonPrefix(constQVersionNumber &v1, constQVersionNumber &v2)

返回一个既是v1 又是v2 的父版本号。

另请参阅 isPrefixOf()。

[static noexcept] int QVersionNumber::compare(const QVersionNumber &v1, const QVersionNumber &v2)

将v1 与v2 进行比较,并返回一个小于、等于或大于零的整数,具体取决于v1 分别是小于、等于还是大于v2 。

比较操作通过比较v1 和v2 中从索引 0 开始、向较长列表末尾方向依次处理的段落来完成。

QVersionNumber v1(1, 2);
QVersionNumber v2(1, 2, 0);
int compare = QVersionNumber::compare(v1, v2); // compare == -1

[static, since 6.4] QVersionNumber QVersionNumber::fromString(QAnyStringView string, qsizetype *suffixIndex = nullptr)

根据格式为string 的字符串(其中包含以小数点分隔的非负十进制数,. ),构建一个QVersionNumber 对象。

解析完数值段后,字符串的剩余部分将被视为后缀字符串。如果该字符串不为空,其起始索引将存储在suffixIndex 中。

QLatin1StringView string("5.4.0-alpha");
qsizetype suffixIndex;
auto version = QVersionNumber::fromString(string, &suffixIndex);
// version is 5.4.0
// suffixIndex is 5

注意:在 Qt 6.4 之前的版本中 ,该函数分别针对QString 、QLatin1StringView 和QStringView 进行了重载,且suffixIndex 属于int* 。

该函数在 Qt 6.4 中引入。

另请参阅 isNull()。

[noexcept] bool QVersionNumber::isNormalized() const

如果版本号不包含尾随的零,则返回true ;否则返回false 。

另请参阅 normalized()。

[noexcept] bool QVersionNumber::isNull() const

如果数值段为零,则返回true ;否则返回false 。

另请参阅 segments()。

[noexcept] bool QVersionNumber::isPrefixOf(const QVersionNumber &other) const

如果当前版本号包含在other 的版本号中,则返回true ;否则返回false 。

QVersionNumber v1(5, 3);
QVersionNumber v2(5, 3, 1);
bool value = v1.isPrefixOf(v2); // true

另请参阅 commonPrefix()。

[noexcept] int QVersionNumber::majorVersion() const

返回主版本号,即第一个分段。该函数等同于segmentAt(0)。如果该QVersionNumber 对象为空,则该函数返回 0。

另请参阅 isNull() 和segmentAt()。

[noexcept] int QVersionNumber::microVersion() const

返回微版本号,即第三部分。该函数等同于segmentAt(2)。如果该QVersionNumber 对象不包含微版本号,则该函数返回0。

另请参阅 isNull() 和segmentAt()。

[noexcept] int QVersionNumber::minorVersion() const

返回次版本号,即第二部分。该函数等同于segmentAt(1)。如果该QVersionNumber 对象不包含次版本号,则该函数返回0。

另请参阅 isNull() 和segmentAt()。

QVersionNumber QVersionNumber::normalized() const

返回一个等效的版本号,但去除了所有尾随的零。

若要检查两个数字是否等价,请在进行比较之前,先对两个版本号分别调用 normalized() 函数。

QVersionNumber v1(5, 4);
QVersionNumber v2(5, 4, 0);
bool equivalent = v1.normalized() == v2.normalized();
bool equal = v1 == v2;
// equivalent is true
// equal is false

[noexcept] int QVersionNumber::segmentAt(qsizetype index) const

返回index 处的段值。如果该索引不存在,则返回0。

另请参阅 segments() 和segmentCount()。

[noexcept] qsizetype QVersionNumber::segmentCount() const

返回存储在segments()中的整数个数。

另请参阅 segments()。

QList<int> QVersionNumber::segments() const

返回所有数值段。

另请参阅 majorVersion()、minorVersion() 和microVersion()。

QString QVersionNumber::toString() const

返回一个字符串,其中所有分段均以句点分隔(. )。

另请参阅 majorVersion()、minorVersion()、microVersion(),以及segments()。

相关非成员

[noexcept] bool operator!=(const QVersionNumber &lhs, const QVersionNumber &rhs)

如果 `lhs ` 不等于 `rhs`,则返回 `true `;否则返回 `false`。

另请参阅 QVersionNumber::compare()。

[noexcept] bool operator<(const QVersionNumber &lhs, const QVersionNumber &rhs)

如果lhs 小于rhs ,则返回true ;否则返回false 。

另请参阅 QVersionNumber::compare()。

QDataStream &operator<<(QDataStream &out, const QVersionNumber &version)

将版本号version 写入流out 。

请注意,这与QDataStream::version() 没有任何关系。

[noexcept] bool operator<=(const QVersionNumber &lhs, const QVersionNumber &rhs)

如果 `lhs ` 小于或等于 `rhs`,则返回 `true `;否则返回 `false`。

另请参阅 QVersionNumber::compare()。

[noexcept] bool operator==(const QVersionNumber &lhs, const QVersionNumber &rhs)

如果 `lhs ` 等于 `rhs`,则返回 `true `;否则返回 `false`。

另请参阅 QVersionNumber::compare()。

[noexcept] bool operator>(const QVersionNumber &lhs, const QVersionNumber &rhs)

如果lhs 大于rhs ,则返回true ;否则返回false 。

另请参阅 QVersionNumber::compare()。

[noexcept] bool operator>=(const QVersionNumber &lhs, const QVersionNumber &rhs)

如果lhs 大于或等于rhs ,则返回true ;否则返回false 。

另请参阅 QVersionNumber::compare()。

QDataStream &operator>>(QDataStream &in, QVersionNumber &version)

从流in 中读取版本号,并将其存储在version 中。

请注意,这与QDataStream::version() 没有任何关系。

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