![](https://img-blog.csdnimg.cn/bf1e8cc6f62e4c079e062db36af0fbc9.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
QT
文章平均质量分 82
系统介绍Qt的开发
You can do more
事以急败,思因缓得
展开
-
Gperftools交叉编译
Gperftools(Google Performance Tools)是由谷歌开发的一组性能分析工具。它包括了多个工 具,其中最为知名的是 tcmalloc(Thread-Caching Malloc)和 CPU Profiler。相比与其他性能分析工具,gperftools有Profiling速度快,灵活性较高的优点。主流的热点分析工具,分别是GNU gprof、Valgrind和Google perftools.原创 2024-06-29 21:41:14 · 385 阅读 · 0 评论 -
Qt代码分析
要使用代码分析工具,请在Analyze菜单或(Start Debugging of Startup Project)按钮的下拉菜单中选择它。使用Linux Perf工具集成的Performance Analyzer分析嵌入式应用程序和Linux桌面应用程序的CPU使用情况。使用Memcheck工具检测内存管理中的问题,使用Callgrind工具查找代码中的缓存缺失。例如,作为测试套件的一部分分析应用程序的运行方式,并使用结果使测试更有效和更完整。进行代码静态分析和架构分析,检测并消除代码不必要的复杂性。原创 2024-06-29 16:17:36 · 321 阅读 · 0 评论 -
Qt自定义类型
在开始之前,我们需要确保创建的自定义类型满足QMetaType的所有要求。一个公共的默认构造函数,一个公共复制构造函数,以及一个公共析构函数。public:private:这个类还提供了一个普通使用的构造函数,以及两个用于获取私有数据的公共成员函数。虽然前一节中的声明使该类型可用于直接的信号槽连接,但不能用于排队的信号槽连接,例如不同线程中的对象之间的连接。这是因为元对象系统不知道如何在运行时处理自定义类型对象的创建和销毁。要在运行时创建对象,请。原创 2024-06-29 15:43:52 · 1094 阅读 · 0 评论 -
Qt坐标系统
坐标系统由QPainter类控制。与QPaintDevice和QPaintEngine类一起,QPainter构成了Qt绘画系统的基础。QPainter用于执行绘制操作,QPaintDevice是一个二维空间的抽象,可以使用QPainter在其上进行绘制,QPaintEngine提供了画家用于在不同类型设备上绘制的界面。QPaintDevice类是可绘制对象的基类:它的绘制功能由QWidget、QImage、QPixmap、QPicture和QOpenGLPaintDevice类继承。原创 2024-06-21 20:35:08 · 1335 阅读 · 0 评论 -
QT处理Unix信号
每个QSocketNotifier的activated()信号连接到相应的插槽函数,该函数有效地将Unix信号转换为QSocketNotifier::activated()信号。策略是让Unix信号处理程序做一些事情,最终导致Qt信号被发出,然后您只需从Unix信号处理程序返回。回到你的Qt程序,Qt信号被发射,然后被Qt插槽函数接收,在这里你可以安全地做任何Qt的事情你在Unix信号处理程序中不允许做的事情。现在你安全地回到了Qt中,你的信号,你可以做所有Qt的东西,你不被允许做在Unix信号处理程序。原创 2024-06-20 21:20:45 · 408 阅读 · 0 评论 -
Qt异常处理
初步警告:异常安全功能不完整!一般情况下应该可以工作,但类仍然可能泄漏甚至崩溃。Qt本身不会抛出异常。而是使用错误码, 但是C++可能会抛出异常。此外,有些类有用户可见的错误消息,例如QIODevice::errorString()或QSqlQuery::lastError()。这有历史和现实的原因——打开异常可能会使库的大小增加20%以上。下面几节将描述Qt在编译时启用异常支持时的行为。原创 2024-06-20 20:55:52 · 557 阅读 · 0 评论 -
Qt多线程技术
Qt提供了许多处理线程的类和函数。下面是Qt程序员可以用来实现多线程应用程序的四种不同方法。原创 2024-06-19 21:29:20 · 784 阅读 · 0 评论 -
Qt插件系统
例如,如果您想编写一个自定义的QStyle子类并让Qt应用程序动态加载它,那么您将使用高级的API。由于高级API构建在低级API之上,因此有些问题对两者都是通用的。如果你想为Qt Designer提供插件,请参阅Qt Designer模块文档。原创 2024-06-17 11:49:16 · 1147 阅读 · 0 评论 -
Qt国际化
Qt使用Unicode编码可显示的文本字符串。Unicode为世界上所有常用的书写系统提供支持,是跨平台开发的理想选择。还可以使用Qt强大的国际化系统,用一个代码库编写应用程序来支持任意数量的不同语言。原创 2024-06-14 15:41:55 · 701 阅读 · 0 评论 -
Qt状态机框架
状态机框架提供了用于创建和执行状态图的类。这些概念和符号基于Harel的Statecharts:复杂系统的可视化形式(),也是UML状态图的基础。状态机执行的语义基于状态图XML (SCXML)(状态图提供了一种图形化的方式来模拟系统对刺激的反应。这是通过定义系统可能处于的状态,以及系统如何从一个状态移动到另一个状态(状态之间的转换)来完成的。事件驱动系统(如Qt应用程序)的一个关键特征是,行为通常不仅取决于最近的或当前的事件,还取决于在它之前的事件。使用状态图,这些信息很容易表达。原创 2024-06-13 20:51:39 · 858 阅读 · 0 评论 -
Qt信号槽
我们发现这在实践中非常有用。原创 2024-06-13 12:43:54 · 528 阅读 · 0 评论 -
Qt事件系统
在Qt中,事件是对象,派生自抽象的QEvent类,它表示应用程序内部发生的事情或作为应用程序需要知道的外部活动的结果。事件可以由QObject子类的任何实例接收和处理,但它们与小部件特别相关。本文档描述了在典型应用程序中如何传递和处理事件。原创 2024-06-13 10:12:26 · 870 阅读 · 0 评论 -
Qt属性系统
属性使用的自定义类型需要使用宏注册,以便它们的值可以存储在QVariant对象中。这使得它们既适合与类定义中使用Q_PROPERTY()宏声明的静态属性一起使用,也适合与运行时创建的动态属性一起使用。原创 2024-06-07 21:33:57 · 723 阅读 · 0 评论 -
Qt元对象系统
它试图将其参数强制转换为尖括号中指定的指针类型,如果对象的类型是正确的(在运行时确定),则返回一个非零指针,如果对象的类型不兼容则返回nullptr。从元对象系统的角度来看,一个没有元代码的QObject子类相当于它最近的祖先带有元对象代码。如果它发现一个或多个包含Q_OBJECT宏的类声明,它会生成另一个c++源文件,其中包含每个类的元对象代码。从QObject到QWidget的强制转换是成功的,因为对象实际上是一个MyWidget,它是QWidget的一个子类。另一方面,对QLabel的强制转换失败。原创 2024-06-07 11:08:19 · 895 阅读 · 0 评论 -
QT对象模型
上面列出的Qt对象模型的一些附加功能要求我们将Qt对象视为身份,而不是值。克隆意味着创造一个新的身份,而不是旧身份的精确副本。他们可能看起来一样,但他们有不同的名字,不同的位置,可能有完全不同的社交网络。标准的 C++ 对象模型为对象范式提供了非常有效的运行时支持。Qt通过将C++的速度与Qt对象模型的灵活性相结合来提供这一点。其他的,比如对象通信机制和动态属性系统,需要Qt自己提供的。由于这些原因,Qt对象应该被视为身份,而不是值。标识是克隆的,而不是复制或分配的,克隆标识是比复制或分配值更复杂的操作。原创 2024-06-06 16:55:16 · 803 阅读 · 0 评论 -
Ubuntu下编译qt程序libQtWebEngineCore报错
最近在Ubuntu下编译qt程序时, 报如下错误libQt5WebEngineCore.so: .dynsym local symbol at index 3 (>= sh_info of 3)libQt5WebEngineCore.so: .dynsym local symbol at index 4 (>= sh_info of 3)libQt5WebEngineCore.so: .dynsym local symbol at index 5 (>= sh_info of 3原创 2022-03-14 15:30:40 · 4820 阅读 · 8 评论