453 字
1 分钟
【QT】核心类型与容器
Qt Core 是所有模块的公共基础:事件循环、字符串、容器、文件 I/O、线程、元对象系统等。
QObject
所有 Qt 对象的基类。类继承链上任意一层为 QObject 时,可使用信号与槽、父子对象树、事件系统等特性。
- 父子关系:子对象析构时由父对象负责释放;
delete parent会级联删除子对象。 - 对象树:便于管理窗口、布局中的控件生命周期。
QString 与 QChar
QString 存储 Unicode 字符串,无 QObject 父类。
- 每个字符为
QChar,内部常用 UTF-16 编码(每码元 2 字节)。 - 与
std::string互转:QString::fromStdString()、toStdString()。 - 字面量:
QString s = u"你好"_qs;(Qt6)或QStringLiteral("hello")。
常用操作:append、split、arg 占位格式化、trimmed、isEmpty。
顺序容器
| 类 | 说明 |
|---|---|
QList<T> | 通用动态数组,Qt6 中 QVector 为其别名 |
QStack<T> | 栈 |
QQueue<T> | 队列 |
Qt6:
QVector与QList统一为同一实现(基于连续存储的数组机制)。
关联容器
| 类 | 说明 |
|---|---|
QSet<T> | 无序唯一集合 |
QMap<Key, T> | 有序键值对(按键排序) |
QMultiMap<Key, T> | 一键多值 |
QHash<Key, T> | 哈希表,平均 O(1) |
QMultiHash<Key, T> | 哈希,一键多值 |
容器遍历
STL 风格迭代器
每个容器提供 const_iterator(只读)与 iterator(可写)。
begin()/constBegin():首元素end()/constEnd():尾后位置(不指向有效元素,仅作循环结束判断)
顺序容器示例:
QList<QString> list{"a", "b", "c", "d"};for (QList<QString>::const_iterator i = list.constBegin(); i != list.constEnd(); ++i) qDebug() << *i;关联容器示例(键值对用 key() / value()):
QMap<int, int> map;for (QMap<int, int>::const_iterator i = map.constBegin(); i != map.constEnd(); ++i) qDebug() << i.key() << ':' << i.value();范围 for(C++11,推荐)
for (const QString &s : list) qDebug() << s;
for (auto it = map.constBegin(); it != map.constEnd(); ++it) qDebug() << it.key() << it.value();foreach 宏(Qt5 风格,Qt6 仍可用)
定义于 <QtGlobal>:
QList<QString> list;foreach (const QString &str, list) qDebug() << str;支持代码块与 break。多值映射可嵌套 foreach。
其他常用 Core 类型
| 类型 | 用途 |
|---|---|
QByteArray | 原始字节序列 |
QVariant | 类型擦除的通用值 |
QDateTime / QDate / QTime | 日期时间 |
QFile / QDir | 文件与目录 |
QSettings | 配置持久化(注册表/ini) |
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
【QT】核心类型与容器
https://lysj.work/posts/studynotes/qt/qt核心类型与容器/ 部分信息可能已经过时
相关文章 智能推荐
1
【QT】布局与QSS
StudyNotes 介绍 QHBoxLayout 等布局管理、QSS 选择器语法及与 QPalette、QStyle 的关系。
2
【QT】交叉编译与部署
StudyNotes 以 NXP i.MX 为例说明交叉工具链配置、Qt Creator Kits 及嵌入式板端部署要点。
3
【QT】信号槽与事件
StudyNotes 讲解信号与槽的 connect 写法、连接类型、事件处理与 eventFilter 及 QTimer 定时器。
4
【QT】入门与构建
StudyNotes 介绍 Qt 事件循环、链接库、qmake/CMake 构建及 MOC/UIC/RCC 编译流程与跨平台原理。
5
【QT】对话框与常用控件
StudyNotes 涵盖 QFileDialog、QMessageBox 等标准对话框及按钮、输入、视图等常用控件分类。
