
Qt Core
文章平均质量分 86
Qt 包含一组丰富的基本驱动程序,主要来自 Qt Core 模块。 Qt 使用这些驱动器来提供更高级别的 UI 和应用程序开发组件。 以下主题解释了最重要的促成因素,并展示了如何使用它们来实现 Qt 尚未提供的特殊功能 :
元对象系统、属性系统、对象模型、对象树和所有权、信号和槽
hitzsf
这个作者很懒,什么都没留下…
展开
-
QDebug 的不换行使用技巧
在Qt开发里,使用 qDebug() 来打印日志信息,是一件十分愉快的事情,很多类、容器都可以直接打印,十分方便,而且还实现了编码输出,在windows上使用msvc编译器,构建输出不会出现乱码,会觉得更加舒服。但有时想要打印自己格式的信息,比如 打印一个数组时,qDebug() 会自动产生添加换行,把一个整体的信息给弄得支离破碎++i) {---123如果想打印成数组 [1,2,3]这种形式, 又该怎么办?buf.append("数组 [ ");++i) {原创 2023-12-09 14:28:51 · 3458 阅读 · 0 评论 -
Qt_模块_Core_容器类
文章目录1.Qt Container1.1. 介绍1.2. 具体容器类1.2.1 顺序容器:1.2.2 关联容器:1.2.3 缓存存储:1.2.4 示例:1.3. 迭代器类1.3.1. Java样式迭代器1.3.2. STL样式迭代器1.3.3. 隐式共享迭代器的问题1.4. foreach 关键字1.5. 其他类似容器的类1.6. 算法的复杂性1.7. 成长策略1.Qt Container1.1. 介绍Qt库提供了一组基于通用模板的容器类。这些类可用于存储指定类型的项目。例如,如果需要可调整大小的翻译 2020-08-14 16:41:02 · 490 阅读 · 1 评论 -
Qt_模块_ Core
文章目录1. Qt Core1.1. 核心功能1.2. 使用模块1.2.1. 用CMake构建1.2.2. 用qmake构建1.3. 线程和并发编程1.4. 输入/输出、资源和容器1.5. 其他框架1.6. 许可和出处1.7. 参考Qt官方文档1. Qt Core1.1. 核心功能Qt核心添加这些功能到c++:一种非常强大的无缝对象通信机制,称为信号和插槽可查询和可设计的对象属性层次结构和可查询的对象树组织使用受保护的指针(QPointer)以自然的方式拥有对象所有权翻译 2020-08-14 11:17:42 · 349 阅读 · 0 评论 -
Qt 核心功能(00):元对象系统【官翻】
元对象系统Qt的元对象系统为对象间通信、运行时类型信息和动态属性系统提供了信号和槽机制。元对象系统基于以下三件事:QObject类为可以利用元对象系统的对象提供了一个基类。类声明的私有部分中的Q_OBJECT宏用于启用元对象特性,如动态属性、信号和槽。元对象编译器(moc)为每个QObject子类提供实现元对象特性所需的代码。元对象编译器(moc)工具读取一个c++源文件。如果它发现一个或多个包含Q_OBJECT宏的类声明,它将生成另一个c++源文件,其中包含每个类的元对象代码。生成的源文件原创 2020-11-15 22:02:41 · 226 阅读 · 0 评论 -
Qt 核心功能(01):属性系统【官翻】
属性系统Qt提供了一个复杂的属性系统,类似于某些编译器供应商提供的属性系统。 但是,作为与编译器和平台无关的库,Qt并不依赖非标准的编译器功能,例如__property或[property]。 Qt解决方案可在Qt支持的每个平台上与任何标准C ++编译器一起使用。 它基于元对象系统,该元对象系统还通过信号和插槽提供对象间通信。声明属性的要求若要声明属性,请在继承QObject的类中使用Q_PROPERTY() 宏。 Q_PROPERTY(type name (READ get原创 2020-11-15 22:04:57 · 385 阅读 · 0 评论 -
Qt 核心功能(02):对象模型【官翻】
文章目录对象模型重要的类Qt对象:标识与值对象模型标准的C++对象模型为对象范例提供了非常有效的运行时支持。但是它的静态性质在某些问题领域是不灵活的。图形用户界面编程是一个既需要运行时效率又需要高度灵活性的领域。 Qt通过结合C ++的速度和Qt对象模型的灵活性来提供此功能。Qt将这些功能添加到C ++中:一种非常强大的无缝对象通信机制,称为信号和槽可查询和可设计的对象属性强大的事件和事件过滤器上下文的字符串国际化的翻译复杂的间隔驱动计时器,使许多任务可以优雅地集成到事件驱动的GUI中分原创 2020-11-18 11:59:13 · 200 阅读 · 0 评论 -
Qt 核心功能(03):对象树和所有权【官翻】
文章目录概述构建/销毁QObject的顺序对象树和所有权概述QObject将自己组织在对象树中。当您创建一个以另一个对象作为父对象的QObject时,它将被添加到父对象的children() 列表中,并在父对象被删除时被删除。事实证明,这种方法非常适合GUI对象的需求。例如,QShortcut(键盘快捷方式)是相关窗口的孩子,因此,当用户关闭该窗口时,快捷方式也会被删除。QQuickItem是Qt Quick模块的基本视觉元素,它继承自QObject,但是其视觉父级的概念与QObject父级的不同。原创 2020-11-18 11:59:45 · 280 阅读 · 0 评论 -
Qt 核心功能(04):信号和槽【官翻】
文章目录介绍Signals 和 SlotsSignalsSlots一个小例子一个真实的例子带有默认参数的信号和槽高级信号和插槽的使用使用Qt与第三方信号和插槽信号和槽信号和槽用于对象之间的通信。信号和插槽机制是Qt的核心特性,也是与其他框架提供的特性最大的不同之处。Qt的元对象系统使信号和插槽成为可能。介绍在GUI编程中,当我们更改一个小部件时,我们通常希望另一个小部件得到通知。更一般地,我们希望任何类型的对象都能够相互通信。例如,如果用户单击关闭按钮,我们可能希望调用窗口的Close()函数。其原创 2020-11-18 12:00:24 · 452 阅读 · 0 评论 -
Qt 核心功能(16):自定义类型【官翻】
创建自定义Qt类型概述当使用Qt创建用户界面时,特别是那些具有特殊控件和特性的界面时,开发人员有时需要创建新的数据类型,这些数据类型可以与Qt现有的一组值类型一起使用或代替它们。QSize、QColor和QString等标准类型都可以存储在QVariant对象中,用作基于QObject的类中的属性类型,并在信号槽通信中发出。在本文档中,我们将采用一个自定义类型,并描述如何将其集成到Qt的对象模型中,从而使其能够以与标准Qt类型相同的方式存储。然后,我们将展示如何注册自定义类型,以允许它在信号和插槽连原创 2020-11-23 09:07:23 · 1056 阅读 · 0 评论 -
Qt 核心功能(17):自定义类型示例【官翻】
自定义类型的示例自定义类型示例展示了如何将自定义类型集成到Qt的元对象系统中。概述Qt提供了一系列标准值类型,用于提供丰富而有意义的api。这些类型与元对象系统集成,使它们能够存储在QVariant对象中,在调试信息中写入,并在信号槽通信中在组件之间发送。定制类型也可以与元对象系统集成,只要它们的编写遵循一些简单的指导原则。在这个示例中,我们介绍了一个简单的Message类,描述了如何使它与QVariant一起工作,并展示了如何扩展它以生成其自身的可打印表示,以便在调试输出时使用。Message类原创 2020-11-23 09:07:55 · 379 阅读 · 0 评论