Qt
文章平均质量分 75
爱我如深海
学生
展开
-
Qt5 OpenGL教程系列1:基础渲染
文章目录OpenGLBufferQOpenGLVertexArrayObject基本渲染1.创建一个Vertex类(以简化操作)。2.将QOpenGL *类添加到Window类OpenGLBufferOpenGL中的QOpenGLBuffer对象有点像GPU上动态内存的唯一ID。这样理解有点困难,但是对于那些不熟悉的人,可以将它们近似为GPU动态内存。我们可以给GPU提供有关如何使用内存的提示...翻译 2020-02-29 21:22:01 · 4031 阅读 · 1 评论 -
Qt5 OpenGL教程系列0:创建一个窗口
在Qt 5中添加了QOpenGL类-替换了QGL类。注意:QGL *类仍然可以通过Qt5OpenGL模块使用,因此依赖于此类的旧代码仍然可以使用,但是不建议将其用于新的Qt5 OpenGL应用程序。关于Qt5 OpenGL教程系列本系列教程假定你有Qt框架的基础知识。至少了解信号与槽,知道如何创建简单的程序。如果你对文章的内容有任何不明白、需要我阐明的地方,请评论留言。对OpenGL有...翻译 2020-02-28 22:54:57 · 2275 阅读 · 0 评论 -
QML如何与QSystemTrayIcon协同工作
文章目录问题来源第一个版本系统托盘项目的结构QmlSystemTray.promain.cppsystemtray.hsystemtray.cppmain.qml第二个变种系统托盘项目的结构QmlSystemTray_2.promain.cppmain.qml问题来源将应用程序从Qt / C ++移动到Qt / QML时,遇到系统托盘的问题。目的是将系统托盘的C ++代码部分的或全部的转换为Q...原创 2019-03-17 10:42:45 · 1067 阅读 · 1 评论 -
Qt QML中MVC的应用
总览QML应用程序架构最佳实践为什么要关心界面,数据,逻辑分离的问题?设计模式,如MVC,MVVM或FluxQML中的模型 - 视图分离创建清洁数据流:受Flux启发的QML架构QML的简单Flux-like MVC示例应用逻辑DataModel和存储页面和视图逻辑如何在本地存储中缓存数据?QML应用程序架构最佳实践为什么要关心界面,数据,逻辑分离的问题?使用QML + Javascrip...原创 2018-12-06 15:51:21 · 3426 阅读 · 1 评论 -
如何将带有信号与槽的C++代码暴露给QML
使用QML进行应用程序开发简单而强大。但是Qt C ++可以提高性能,提供许多功能并且不易出错。这篇文章向您展示了如何创建利用这两种语言的应用程序。文章目录如何在C ++和QML之间进行通信QML中编码的优点何时使用C ++代替如何从QML访问C ++对象在项目中创建C ++类使用QML实现带有信号和插槽的C ++类将对象公开为QML作为Context属性添加具有完整QML支持的类属性如何将C...原创 2018-12-05 19:19:51 · 850 阅读 · 0 评论 -
Cannot create children for a parent that is in a different thread Qt线程问题
起因在做一个编译器词法分析的图形展示时用到了多线程,继承了QThread并重写了run方法。 基本上就是下面这个意思:class Thread : public QThread {void run() {QObject *obj = new QObject(this);//这里出现了问题}};运行时提示Cannot create children for a parent...原创 2018-05-12 21:35:16 · 12021 阅读 · 2 评论 -
解析Qt内省机制
何为内省所谓内省是指面向对象语言的一种在运行期间查询对象信息的能力, 比如如果该语具有运行期间检查对象型别的能力,那么我们称它是型别内省(type intropection)的,型别内省可以用来实施多态。C++的内省比较有限,它仅支持上面所说的型别内省, C++的型别内省是通过运行时类型识别(RTTI)(Run-Time Type Information)中的typeid 以及dynami...转载 2018-05-12 18:59:12 · 893 阅读 · 0 评论 -
浅议Qt的事件处理机制 二
我们在上文中,介绍了Qt框架的事件处理机制:事件的产生、分发、接受和处理,并以视窗系统鼠标点击QWidget为例,对代码进行了剖析,向大家分析了Qt框架如何通过Event Loop处理进入处理消息队列循环,如何一步一步委派给平台相关的函数获取、打包用户输入事件交给视窗系统处理,函数调用栈如下:main(int, char **)QApplication::exec()QCoreAppl...转载 2018-05-12 17:40:11 · 537 阅读 · 0 评论 -
浅议Qt的事件处理机制 一
深入了解事件处理系统对于每个学习Qt人来说非常重要,可以说,Qt是以事件驱动的UI工具集。 大家熟知Signals/Slots在多线程的实现也依赖于Qt的事件处理机制。在Qt中,事件被封装成一个个对象,所有的事件均继承自抽象类QEvent. 接下来依次谈谈Qt中有谁来产生、分发、接受和处理事件:谁来产生事件:最容易想到的是我们的输入设备,比如键盘、鼠标产生的keyPressE...转载 2018-05-12 17:31:11 · 646 阅读 · 1 评论 -
线程和QObjects
简介QThread继承QObject。 它发出信号以指示线程已启动或完成执行,并提供几个slots。 更有趣的是,QObject可以用于多线程,发射信号以调用其他线程中的槽,并将event发布到其他线程中的对象。 这是可能的,因为每个线程都有自己的事件循环。QObject可重入性QObject是可重入的。它的大部分非GUI子类(如QTimer,QTcpSocket,QUdpS...原创 2018-04-14 10:26:58 · 337 阅读 · 0 评论 -
Qt Concurrent
简介QtConcurrent命名空间提供了高级API,可以在不使用低级别线程原语(如互斥锁,读写锁,等待条件或信号量)的情况下编写多线程程序。 使用QtConcurrent编写的程序会根据可用的处理器内核数自动调整使用的线程数。 这意味着今后编写的应用程序将在未来部署到多核系统时可以充分利用更多的处理器内核。依赖如要使用QtConcurrent,需要在Qt工程中加入conc...原创 2018-04-14 09:02:42 · 1113 阅读 · 0 评论 -
Qt中的多线程技术详解
Qt中的多线程技术Qt提供了许多用于处理线程的类和函数。 以下是Qt程序员可以用来实现多线程应用程序的四种不同方法。QThread:带有可选事件循环的低级APIQThread是Qt中所有线程控制的基础。 每个QThread实例表示并控制一个线程。 QThread可以直接实例化或派生子类。 实例化QThread提供了一个并行事件循环,允许在辅助线程中触发QObject的slot...原创 2018-04-13 22:33:31 · 1514 阅读 · 0 评论 -
qDebug()浮点输出问题
概要在使用Qt时,通过qDebug()输出浮点数时有机会遇到一个细微错误。 问题在于显示的可能并不完整。 std::cout有相同的问题。情况可能发生在以下情况:您有一个QString对象,它包含一定数量的8564.26495574,我们使用toDouble()方法将其转换为浮点数,然后用输出qDebug()检查结果,但是运气不好,输出不正确。QString str("8564...原创 2018-03-31 15:36:13 · 8792 阅读 · 0 评论 -
如何使用Qt-QML与V-Player来获取REST服务:天气服务示例
原文链接REST与RESTful web services是从网络获取数据的最常用的方法。 Qt和V-Player提供了简单的方法来通过REST来获取数据。 这篇文章将告诉你创建App与连接到REST服务的重要步骤。另外,也将会提供一些有用的代码。Spoiler:V-Player简单的REST例子在我们进入到创建整个示例App的细节之前,让我们先看一个小型App的代码。 函数#g...翻译 2018-03-13 15:01:16 · 1422 阅读 · 0 评论 -
Qt事件处理,事件循环
Qt事件处理的基本方法原创 2017-10-30 14:45:34 · 1584 阅读 · 0 评论