
QT
文章平均质量分 85
QT学习心得。
伽利略打小怪兽
愤怒的小番茄
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【QT】SendEvent和PostEvent源代码分析
QT SendEvent和PostEvent源代码分析。原创 2024-06-04 18:06:38 · 422 阅读 · 0 评论 -
【QT】事件机制源代码分析
源代码来自Qt5.12.12。从QApplication的事件循环开始,查看关键代码。原创 2024-06-04 18:05:59 · 598 阅读 · 0 评论 -
【QT】隐式共享
Qt 中许多 C++ 类使用隐式数据共享来最大程度地利用资源并最小化复制。隐式共享类在作为参数传递时既安全又高效,因为只传递数据的指针,只有在函数写入数据时才会复制数据,即*写时复制*。原创 2024-05-21 20:12:54 · 1002 阅读 · 0 评论 -
【QT】资源系统
Qt资源系统是一种跨平台的机制,用于将二进制文件存储在应用程序的可执行文件中。如果您的应用程序始终需要一定的文件集(如图标、翻译文件等),并且不希望丢失这些文件,这将非常有用。资源系统基于qmake(Qt的构建工具)、rcc(Qt的资源编译器)和QFile之间的紧密协作。原创 2024-05-21 19:53:37 · 1187 阅读 · 0 评论 -
【QT】多语言
应用程序的*国际化*和*本地化*是将应用程序适应不同语言、地区差异和目标市场技术要求的过程。国际化是指设计一个软件应用,使其可以在不进行工程修改的情况下适应各种语言和地区。 本地化是指通过添加特定区域或语言的组件(如日期、时间和数字格式)并翻译文本来使国际化的软件适应特定地区或语言。原创 2024-05-21 08:52:16 · 1008 阅读 · 0 评论 -
【QT】容器类
Qt 库提供了一组通用的基于模板的容器类。这些类可以用于存储指定类型的项目。例如,如果需要一个可调整大小的 QString 数组,可以使用 QVector。这些容器类设计得比 STL 容器更轻量、更安全且更易于使用。如果你不熟悉 STL,或者更喜欢“Qt 方式”的做法,可以使用这些类代替 STL 类。容器类是隐式共享的,它们是可重入的,并且经过优化以达到快速、低内存消耗和最小的内联代码扩展,从而生成更小的可执行文件。此外,在所有线程都将它们用作只读容器的情况下,它们是线程安全的。原创 2024-05-21 08:35:01 · 1117 阅读 · 0 评论 -
【QT】会话管理
一个*会话*是指一组正在运行的应用程序,每个应用程序都有特定的状态。会话由一个名为*会话管理器*的服务控制。参与会话的应用程序称为*会话客户端*。原创 2024-05-20 14:22:17 · 1235 阅读 · 0 评论 -
【QT】Qt中的进程间通信(IPC)
Qt 提供了几种在 Qt 应用程序中实现进程间通信(IPC)的方法。原创 2024-05-20 14:21:22 · 1176 阅读 · 0 评论 -
【QT】线程支持
Qt 提供了跨平台的线程类、线程安全的事件发布方式以及跨线程的信号-槽连接。这使得开发可移植的多线程 Qt 应用程序以及利用多处理器机器变得容易。多线程编程也是执行耗时操作而不冻结应用程序用户界面的有用范式。Qt 的早期版本提供了构建不支持线程的库的选项。从 Qt 4.0 开始,线程功能始终启用。原创 2024-05-17 09:13:33 · 374 阅读 · 0 评论 -
【QT】线程基础
线程是关于并行执行任务的,就像进程一样。那么线程与进程有何不同呢?当你在电子表格上做计算的同时,可能还有一个媒体播放器在桌面上播放你喜欢的歌曲。以下是两个进程并行工作的示例:一个运行电子表格程序;一个运行媒体播放器。多任务处理就是这个概念的一个典型表述。进一步观察媒体播放器,你会发现在一个单一进程内也存在并行执行的情况。当媒体播放器向音频驱动程序发送音乐时,用户界面及其所有功能也在不断更新。这就是线程的作用——在一个单一进程内实现并发。那么并发是如何实现的呢?原创 2024-05-17 09:13:00 · 436 阅读 · 0 评论 -
【QT】线程同步
尽管线程的目的是允许代码并行运行,但有时线程必须停下来等待其他线程。例如,如果两个线程尝试同时写入同一变量,结果是不确定的。强制线程彼此等待的原则称为互斥。这是一种保护共享资源(如数据)的常见技术。Qt 提供了低级别的原始机制以及高级别的线程同步机制。原创 2024-05-17 09:12:14 · 289 阅读 · 0 评论 -
【QT】线程和QObject
QThread 继承自 QObject。它会发射信号来指示线程开始或结束执行,并且也提供了一些槽函数。更有趣的是,QObject 可以在多个线程中使用,发射信号以调用其他线程中的槽函数,并向在其他线程中"活动"的对象发送事件。这是因为每个线程都可以拥有自己的事件循环。原创 2024-05-17 09:11:21 · 666 阅读 · 0 评论 -
【QT】可重入性与线程安全性
在文档中,术语可重入和线程安全用于标记类和函数,以指示它们在多线程应用程序中的使用方式:线程安全可重入因此,线程安全的函数始终是可重入的,但可重入的函数并不总是线程安全的。延伸来说,如果一个类的成员函数可以安全地从多个线程调用,只要每个线程使用该类的不同实例,那么该类被称为可重入。如果一个类的成员函数可以安全地从多个线程调用,即使所有线程使用该类的相同实例,那么该类被称为线程安全。Qt 类仅在打算供多个线程使用时被记录为线程安全。原创 2024-05-17 09:10:21 · 417 阅读 · 0 评论 -
【QT】Qt中的多线程技术
Qt 提供了许多用于处理线程的类和函数。下面是 Qt 程序员可以用来实现多线程应用程序的四种不同方法。原创 2024-05-17 09:09:46 · 511 阅读 · 0 评论 -
【QT】Qt模块中的线程支持
在线程之间共享隐式共享类的实例时应使用适当的锁定。但是,原子引用计数确保了在其自己的、本地隐式共享类实例上工作的线程的安全性。换句话说,如果每个线程都在不同的 QImage 上绘制,则两个线程可以同时绘制,但两个线程不能同时在同一 QImage 上绘制。在许多人看来,隐式共享和多线程是不兼容的概念,这是因为引用计数通常是如何完成的。然而,Qt 使用原子引用计数来确保共享数据的完整性,避免引用计数的潜在破坏。即使在多线程应用程序中,您也可以安全地将它们用作普通的、非共享的、可重入的基于值的类。原创 2024-05-17 09:08:34 · 323 阅读 · 0 评论 -
【QT】对象树与所有权
QObjects自行组织成对象树。当您创建一个带有另一个对象作为父对象的QObject时,它将被添加到父对象的children()列表中,并在父对象被删除时被删除。事实证明,这种方法非常适合GUI对象。例如,一个QShortcut(键盘快捷键)是相关窗口的子对象,因此当用户关闭该窗口时,快捷键也会被删除。原创 2024-05-16 17:45:21 · 428 阅读 · 0 评论 -
【QT】计时器
如果你已经有一个 QObject 子类并且想要进行简单的优化,你可以使用 QBasicTimer 而不是 QTimer。使用 QBasicTimer,你必须在 QObject 子类中重新实现 timerEvent() 并在那里处理超时。"摇摆"示例展示了如何使用 QBasicTimer。原创 2024-05-16 17:20:40 · 1235 阅读 · 0 评论 -
【QT】状态机框架
状态图提供了一种图形化建模系统对刺激的反应方式。这是通过定义系统可能处于的 *状态*,以及系统如何从一个状态转移到另一个状态(*状态之间的转换*)来实现的。事件驱动系统(如Qt应用程序)的一个关键特征是行为往往不仅取决于最后或当前事件,还取决于先前的事件。使用状态图,可以轻松表达这些信息。原创 2024-05-16 17:18:56 · 1078 阅读 · 0 评论 -
【QT】事件系统
在 Qt 中,事件是对象,派生自抽象的 QEvent 类,代表了在应用程序内部发生的事情,或者是应用程序需要知道的外部活动的结果。事件可以被任何 QObject 子类的实例接收和处理,但它们特别适用于小部件。本文档描述了在典型应用程序中如何传递和处理事件。原创 2024-05-15 20:54:30 · 544 阅读 · 0 评论 -
【QT】属性系统
Qt提供了一套类似于某些编译器供应商提供的复杂属性系统。然而,作为一个与编译器和平台无关的库,Qt 不依赖于非标准的编译器特性,比如 `__property` 或 `[property]`。Qt 的解决方案可以在 Qt 支持的每个平台上与 *任何* 标准C++编译器一起使用。它基于元对象系统,该系统还通过信号和槽提供了对象间的通信。原创 2024-05-15 20:47:55 · 869 阅读 · 0 评论 -
【QT】信号&槽
信号和槽被用于对象之间的通信。信号和槽机制是 Qt 的一个核心特性,也许是与其他框架提供的功能最不同的部分。信号和槽是通过 Qt 的**元对象系统**实现的。原创 2024-05-15 20:35:04 · 670 阅读 · 0 评论 -
【QT】元对象系统
Qt的元对象系统为对象间通信提供了信号和槽机制、运行时类型信息以及动态属性系统。原创 2024-05-15 20:09:18 · 382 阅读 · 0 评论 -
【TQ】对象模型
标准 C++ 对象模型为对象范式提供了非常高效的运行时支持。但是,在某些问题域中,它的静态特性不够灵活。图形用户界面编程是一个需要运行时效率和高度灵活性的领域。Qt通过将C++的速度与Qt对象模型的灵活性相结合,提供了这一点。原创 2024-05-15 20:08:20 · 537 阅读 · 0 评论 -
【QT】基于字符串的连接和基于函数的连接之间的差异
从Qt 5.0起,Qt提供了两种不同的C++信号槽连接方式:基于字符串的连接语法(SIGNAL/SLOT将信号/槽转成一个字符串)和基于函数的连接语法。这两种语法各有优缺点。下表总结了它们之间的区别。原创 2024-05-15 09:15:33 · 300 阅读 · 0 评论 -
【Qt】信号&槽
信号和槽被用于对象之间的通信。信号和槽机制是 Qt 的一个核心特性,也许是与其他框架提供的功能最不同的部分。信号和槽是通过 Qt 的元对象系统实现的。原创 2024-05-13 20:06:02 · 1036 阅读 · 0 评论 -
【QPalette】调色板简介
描述QPalette类包含每个小部件状态的颜色组。调色板由三个颜色组组成:活动的、禁用的和非活动的。Qt中的所有小部件都包含一个调色板,并使用它们的调色板来绘制自己。这使得用户界面易于配置和保持一致。如果您创建一个新的小部件,我们强烈建议您使用调色板中的颜色,而不是硬编码特定的颜色。颜色组:1.活动组用于具有键盘焦点的窗口。2.非活动组用于其他窗口。3.禁用组用于由于某种原因禁用的小部...原创 2019-09-02 23:29:25 · 880 阅读 · 0 评论