Qt
YaoYuan9323
喜欢研究自动控制技术
展开
-
Qt —— 细说自定义Tree View Model
Tree view与Tree Widget 相比而言,需要为tree view 设置一个model。使用tree view 能有效降低内存的使用率。但是需要自定义model。下面参考Qt官方提供的demo,讨论如何自定义Tree View Model。依据名为simple tree model官方demo可知道:要自定义tree view model需要定义一个树形结构的底层数据结构,该类型结...原创 2020-01-20 15:54:25 · 4181 阅读 · 4 评论 -
快速入门Google序列化反序列化库——google protobuf 2
一、首先了解序列化与反序列化的概念 序列化:将对象转化为字节序列的过程。 反序列化:将字节序列转化为对象的过程。 标题提到的google protobuf 提供了这种支持。二、使用场景 1> 通过socket在网络上传递对象;(我只接触过这种情况) 2>把的内存中的对象状态保存到一个文件中或者数据库中; 3>...原创 2018-08-05 12:05:22 · 1768 阅读 · 0 评论 -
c++ IO库之ifstream的一些基本操作
c++ IO库中关于文件的的流有六个,它们是ifstream wifstream ofstream wofstream fsream wfsream。w开始的是针对wchar_t类型的数据。从左到右分为三组,它们作用分别是:从文件读取数据、向文件写入数据、读写文件。它们包含在fstream头文件中最近在项目中用到了ifstream,现在对其进行简要说明。 ...原创 2018-08-19 09:44:22 · 3863 阅读 · 0 评论 -
std::ifstream以二进制方式读取图片文件,用Qt再将其转为图片(QImage::loadFromData()函数使用)
上篇文章中谈到谈到ifstrem可以以二进制形式读取图片文件,读取方式与读取txt方式一样,将不再赘述。本文将重点讨论“如何将图片二进制数据转换为图片”。 实际很简单,借助QImage这个非常强大的工具类就可以实现,这个类实际可以直接加载图片文件的,我们先暂时忽略这一点。看看这是怎样的一个过程:代码如下#include "widget.h"#include "ui_...原创 2018-08-19 10:39:43 · 14179 阅读 · 1 评论 -
基于Qt的OPenGL可编程管线学习之Hello Triangle
之前学习过OpenGL的固定管线,后来了解到现在大部分公司都用可编程管线(programmable pipeline)。所以决定开始研究学习可编程管线。Qt5.*之后对OPenGL的支持更好了。经过一番学习,写了一个基于Qt 的OpenGL例子——Hello Triangle Demo,在此记录一下加深一下印象,同时让像我一样的新手快速入门。本文假定您对OPenGL 的固定管线有所了解。...原创 2019-04-21 10:22:59 · 923 阅读 · 0 评论 -
Qt 自定义控件(一)——滑动切换效果的StackedWidget
漂亮的界面加点动画效果将显得更加炫酷。这一片将使用Qt的动画框架,子类化QStackedWidget实现页面的过渡切换效果。原创 2019-05-24 15:45:02 · 3691 阅读 · 0 评论 -
基于Qt的Opengl可编程管线学习——纹理(QOpenGLTexture使用)
纹理,简单说就是将图片展示在物体表面。可以将其类比为墙纸。纹理分为1D,2D, 3D 三类。这里只讨论2D纹理。先要记录一下比较基本的概念。一、纹理坐标纹理坐标起始于(0, 0),也就是纹理图片的左下角,终始于(1, 1),即纹理图片的右上角。和数学二维坐标一样。二、纹理创建Qt提供方便的纹理类——QOpenGLTexture。它使纹理操作变得非常简单。这样就创建了一个纹理对象了...原创 2019-05-25 23:57:56 · 4691 阅读 · 6 评论 -
基于Qt的Opengl可编程管线学习—— VBO(QOpenGLBuffer的使用)
再一次赞扬Qt对OPenGL的支持真的是太棒了。之前一片文章介绍绘制三角形时,顶点位置数据与颜色数据是分开传递的。这篇文章将介绍如何使用Qt的VBO进行顶点数据传递以及数据格式解析。一、VBO的基本使用流程上图中是QOpenGLBuffer对象的使用方式,使用VBO之前必须调用create()创建。使用时,调用bind()。以告知OPenGL我们在使用的VBO。调用allocate()...原创 2019-05-23 13:13:32 · 6434 阅读 · 0 评论 -
基于Qt的Opengles可编程管线学习——VAO(QOpenGLVertexArrayObject的使用)
标准OPenGLes2.0还没有引进VAO,应该是OpenGL3.0以后才有。不过Qt封装的OPenGLes2.0可以使用VAO,它就是QOpenGLVertexArrayObject。其用法与OpenGL3.0中的VAO用法一样。本文假设您熟悉OpenGL的vao。接下来我们一起来学习这个类的用法。一、QOpenGLVertexArrayObject的使用流程和VBO用法(可参考博主另外...原创 2019-06-01 11:05:37 · 4232 阅读 · 1 评论 -
Qt事件机制预览
这篇文件将Qt事件机制讲解的通俗易懂。非常感谢大佬的分享。点击转到原文章地址转载 2018-05-02 16:43:47 · 170 阅读 · 0 评论 -
QApplication 对象, qAPP 与 自定义退出应用按钮功能
谈到QApplication的类不得不提及这个类在main()函数中创建的对象还有一个与之对应的全局宏qApp,我们可以发现他们是同一个内存对象,也就是说可以在程序的任何地方访问app对象:我们可以利用qApp来退出事件循环从而退出应用,正如上图中lambda表达是那样,点击了pushButton按钮,调用quit() 函数。观察控制台输出发现我们的最顶级widget在退出应用时被析构,没有内存泄...原创 2018-03-24 11:33:36 · 4856 阅读 · 0 评论 -
一个智能指针的简单实现
智能指针初探原创 2017-11-20 10:30:16 · 338 阅读 · 0 评论 -
Qt 之初识plugin
qt plugin 初探原创 2017-12-08 13:02:49 · 718 阅读 · 0 评论 -
如何在Qt中使用boost库
如何在Qt中使用boost库、c++11 using 类型别名用法、c++11 auto 关键字类型推导原创 2017-12-03 12:24:49 · 15207 阅读 · 6 评论 -
ubuntu 安装Qt与卸载
Ubuntu 安装Qt 集成开发环境 、 解决qt 编译时can not find -lGL错误原创 2017-12-03 10:59:40 · 992 阅读 · 0 评论 -
Qt中使用boost 库的另外一种方式
Qt中使用boost 库的另外一种方式原创 2017-12-04 10:45:50 · 1376 阅读 · 0 评论 -
使用正确bit数的dll 或 lib(Qt 访问MySQL连接失败的一个原因)
qt程序连接MySQL的一个注意事项原创 2017-12-31 10:55:19 · 399 阅读 · 0 评论 -
非OpenGL版本的Qt使用QGLWidget构建OPenGL应用须知与编译错误解决方法
我们知道可以使用openGL版本的Qt(如Qt5.4.2),通过继承QGLWidget的方式来创建OPenGL应用。我个人觉得这种方式更符合openGL窗体的开发模式(csgl, android(openglES) 就是这么做的):初始化GL ==》窗体大小改变处理 ==》绘制Qt的版本更新很快,我最近有个想法就是让上述方式开发的OPenGL应用也可以在新版本Qt(如5.8.0)编译成...原创 2018-02-01 11:35:06 · 1387 阅读 · 0 评论 -
Qt Creator 传入命令行参数与使用QString解析命令行参数信息
一、为一个应用传入命令行参数的方式然如下:二、在上图中我传入了两个字符串,第一个代表要读的文件的路径,第二个代表要要输出到的文件路径。插句废话QString类是一个非常强大的字符串处理工具,接下来看我们如何解析我们要的路径信息。三、运行结果如下,成功操作文件:...原创 2018-02-11 08:53:55 · 2179 阅读 · 1 评论 -
Qt 使用qDebug() 打印Qlist 容器数据
当QList容器中的数据用qDebug() 有这样一个 LogLat 类定义如下class LogLat{ //需要将 friend QDebug& operatorQDebug &debug, const LogLat &obj); public: LogLat(double log=0.0, double lat=0.0)原创 2017-10-24 12:55:14 · 5266 阅读 · 0 评论