QVersionNumber Class
QVersionNumber 类包含一个由任意数量的分段组成的版本号。更多内容...
| 头文件: | #include <QVersionNumber> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
QVersionNumber 比较
| 类别 | 可比较类型 |
|---|---|
| strong | QVersionNumber |
公共类型
(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。
[noexcept] int QVersionNumber::microVersion() const
返回微版本号,即第三部分。该函数等同于segmentAt(2)。如果该QVersionNumber 对象不包含微版本号,则该函数返回0。
[noexcept] int QVersionNumber::minorVersion() const
返回次版本号,即第二部分。该函数等同于segmentAt(1)。如果该QVersionNumber 对象不包含次版本号,则该函数返回0。
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.