![](https://img-blog.csdnimg.cn/8f630ef5ed47416d80eb4277c5e483fa.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Qt学习之路
文章平均质量分 64
分享Qt的知识
冯一川
如果理论和现实出现冲突的时候,我们一般认为理论错了。你好,我是冯一川,这是我最喜欢的一句话。
展开
-
Qt 软件界面点击QCombBox控件,造成整个界面移位
最近项目中,遇到了一个问题,在绘制界面的时候,使用了QCombBox控件,在点击QCombBox控件下拉中的item时,会造成整个界面移位的现象。在结合leftButton点击事件,我们可以把这个动作给过滤掉,这样就不会造成点击QCombBox,界面出现移位的现象了。如果焦点或光标在该控件上就返回true,否则就返回false。拖放事件过程中是没有更新值的。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。我重写了下面三个事件函数,来实现我的界面拖动效果。原创 2023-12-20 17:20:13 · 575 阅读 · 2 评论 -
Qt 国际化——创建中英文翻译步骤
说明:之前我的csdn博客,第一篇文章发表的就是Qt国际化的文章(点击打开),写的也过于简单了:今天,这篇文章再详细的记录下,中英文翻译的步骤。本片以Qt 5.12.2(编译器MinGW),Qt Creator 4.8.2为例:操作系统为Win 11 64位:Qt对于多语言切换模块提供了专门的工具,Qt Linguist(Qt语言家),我们可以在安装Qt的目录下看到这个工具,它分为32位和64位,如果你的编译器是32位的你翻译的时候就是用32位的Linguist,64位的编译器就对应64位的Linguist原创 2023-12-20 17:18:18 · 953 阅读 · 0 评论 -
Qt 串口插拔提示
解决问题:我本人在做项目的时候,在编写一个桌面工具软件时,我想着增加一个串口插拔提示的框,方便使用者判断串口插拔的情况,避免有些情况下串口接触不良导致数据收发收到影响,从而影响团队中的项目进度。今天我们就此解决这个问题。其中包含纯虚函数nativeEventFilte,所以我们在相关的子类中,需要重写这个函数,来实现我们过滤相关事件的目的。在日常的工作中,项目中,我们经常遇到使用串口的通讯的场景,这时候我们可能会对串口的插拔进行提示。比如说:我们实现的是串口的事件,我们需要过滤对应的。原创 2023-03-06 23:22:40 · 902 阅读 · 0 评论 -
OpenGL(十九)——Qt OpenGL波动纹理(旗子的飘动效果)
这样使得我们的波浪可以“居中”(这样计算所得结果将落在区间[-4.5,4.5]之间)。点[x][y][2]最后的值就是一个sin函数计算的结果。在日常的项目中,我们经常会实现波动的一些纹理效果,比如飘动的旗子,水的波纹,地图上某一点的波浪圈圈等...,本篇介绍波动纹理的实现,旗子的飘动。通过上面的结果展示,我们可以看到旗子飘动的效果,文章所需的资源,我放到了百度网盘,如果链接失效,大家可以私信我。在实现波动效果的时候,常用的波动使用的就是正弦函数sin,然后再叠加纹理的实现,就能实现飘动的旗子了。...原创 2022-07-30 23:11:05 · 1971 阅读 · 0 评论 -
OpenGL(十八)——Qt OpenGL绘制一个3D世界
从磁盘上载入世界资料,会给我们带来更多的弹性,可以让我们体验不同的世界,现在这些日子您所需要的是一个大一点的、更复杂些的、动态3D世界,它带有空间的六自由度和花哨的效果如镜像、入口、扭曲等等,通过上面的结果展示,我们可以看到3D的效果,文章所需的资源,我放到了百度网盘,如果链接失效,大家可以私信我。如果您有兴趣知道下面的每一行代码是如何运行的话,请下载完整的源码,并在浏览这一课的同时,对源码进行跟踪。当您想要使用一系列的数字来完美的表达3D环境时,随着环境复杂度的上升,这个工作的难度也会随之上升。.....原创 2022-07-30 22:45:26 · 2932 阅读 · 1 评论 -
OpenGL(十七)——Qt OpenGL在三维空间移动位图(会动的星星)
星星实际上是一个平面的纹理。现在您在屏幕中心画了个平面的四边形然后贴上纹理,这看起来很不错。一切都如您所\ 想的那样。但是当您当您沿着y轴转上个90度的话,纹理在屏幕上就只剩右侧和左侧的两条边朝着您。看起来就是一条细线。\ 这不是我们所想要的。我们希望星星永远正面朝着我们,而不管屏幕如何旋转或倾斜。......原创 2022-07-30 16:03:11 · 2263 阅读 · 1 评论 -
OpenGL(十六)——Qt OpenGL融合(将两张图片叠合成一张图片)
在常用的项目场景中,我们经常会遇到将两个图片合在一起变成一张图片,这时候就会有前后之分,特别是两个物体合在一起的时候,从前面看就更有前后(深度)之分了,也可以理解成遮挡。这样的一种技术实现OpenGL里叫融合。......原创 2022-07-28 22:56:50 · 4443 阅读 · 2 评论 -
OpenGL(十五)——Qt OpenGL三种不同的纹理滤波方式、光照、物体的移动
本篇分享1、如何使用三种不同的纹理滤波方式。2、如何使用键盘来移动场景中的对象,3、如何在OpenGL场景中应用简单的光照。原创 2022-07-26 23:30:46 · 3261 阅读 · 0 评论 -
OpenGL(十四)——Qt OpenGL纹理
纹理(Texture)的本质是一个2D图片(1D和3D),或者叫图形数据。只是在OpenGL中专业术语中称其为纹理。你可以这样理解纹理,你家房子装修,你想要在不同的房间贴上不同风格的墙纸,有科技感的,有雍容华贵的,还有动漫的等等,此时的墙纸就是我们所说的纹理了。......原创 2022-07-16 23:13:00 · 2327 阅读 · 0 评论 -
OpenGL(十三)——Qt OpenGL绘制三维图形
OpenGL渲染3D物体到屏幕上的过程其实类似我们平时用照相机拍照的过程,这个步骤大致如下:一、把照相机固定在三脚架并让它对准场景(视图变换)二、把场景中的物体调整摆放好(模型变换)三、选择照相机的镜头,并调整放大倍数(投影变换)四、确定最终照片的大小(视口变换)其中视图变换必须要在模型变换之前,其它可以在任何时候。......原创 2022-07-16 22:36:43 · 10129 阅读 · 1 评论 -
OpenGL(十二)——Qt OpenGL绕着坐标轴旋转多边形
可以看到,通过定时器刷新rTri和rQuad的值,并update()重绘,可以看到三角形和四边形在旋转,旋转的效果,你可以把代码在Qt中运行一下看看。这与我们在OpenGL中绕着X轴旋转什么的情形是一样的。Y轴-假设您正处于一个巨大的龙卷风中心,龙卷风的中心从地面指向天空(就像OpenGL中的Y轴)。多边形的旋转,在类中增加两个变量来控制这两个对象的旋转。这与我们在OpenGL中绕着Y轴旋转什么的情形是一样的。这与我们在OpenGL中绕着Z轴旋转什么的情形是一样的。多边形的旋转主要使用的是函数。......原创 2022-07-16 17:36:40 · 3121 阅读 · 0 评论 -
OpenGL(十一)——Qt OpenGL给多边形上色
//! 现在我们绘制一个单调着色——蓝色的正方形。最重要的是要记住,设置当前色之后绘制的所有东东都是当前色的。 //! 以后您所创建的每个工程都要使用颜色。即便是在完全采用纹理贴图的时候,glColor3f仍旧可以用来调节纹理 //! 的色调。等等...,以后再说吧。 //! 我们必须要做的事只需将颜色一次性的设为我们想采用的颜色(本例采用蓝色),然后绘制场景。每个顶点都是蓝色的, //! 因为我们没有告诉OpenGL要改变顶点的颜色。最后的结果是.....全蓝色的....原创 2022-07-16 16:56:34 · 1955 阅读 · 0 评论 -
OpenGL(十)——Qt OpenGL绘制多边形
上篇文章介绍了如何创建一个Qt下的第一个OpenGL程序,代码只是实现了几个重载的函数,但是并未绘制任何东西,这边文章介绍绘制多边形。本文原创作者冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。在很早之前的文章,使用VS2010工具也编写过,使用OpenGL创建多边形。在Qt下同样的也是使用这样的代码进行绘制。看一下,运行的效果。.........原创 2022-07-16 16:27:05 · 3489 阅读 · 1 评论 -
OpenGL(九)——Qt OpenGL创建一个OpenGL的窗口
这个函数的作用是重新设置OpenGL场景的大小,而不管窗口的大小是否已经改变(假定您没有使用全屏模式)。,上一篇介绍了在Qt的OpenGL实现一个旋转的多边形,是以前学习Qt下OpenGL,参考的NeHe的教程实现的,所以,接下来还是把之前学习的NeHe教程也一起贴出来吧,与小伙伴们一起分享、交流。*如果您对OpenGL已经有所了解的话,您可以在glLoadIdentity()调用之后,函数返回之前,试着添加一些OpenGL代码来创建基本的形。以后的每个教程中我都会在例程的此处增加新的代码。........原创 2022-07-16 15:57:28 · 1545 阅读 · 0 评论 -
Qt经验之实现一个多线程的串口接收类QSerialPort
在Qt的编程中,如果不是迫不得已的情况下,一般的我们不建议线程数多于3个。同时,我也不建议把串口接收的类封装为一个多线程的操作,因为串口和网络这些收发数据都是异步的,操作系统会调度,完全没必要再去封装为一个多线程。把接收到的数据需要计算的,耗时处理的扔到另一个线程里,这才是我们应该考虑的事情。但是,有时候,我们迫不得已在串口或者网口接收数据后立马做一些操作,所以也会采用多线程的串口类。在此,再次建议大家,不要把串口、网口这些接收的类封装到多线程中。.....................原创 2022-07-13 23:50:01 · 6197 阅读 · 11 评论 -
小记——Qt Creator MSVC版本中文乱码
Qt Creator MSVC版本中文乱码一、场景在使用msvc版本的Qt开发的时候,会遇到了中文乱码的问题。以我的电脑场景说下解决方式。二、配置Qt:Qt 5.8.0(msvc 2015,32 bit)操作系统:win10 64位。三、原因1. Qt Creator的编辑器默认使用UTF-8编码方式来读取文本文件。在Windows中文简体操作系统,编码使用的是GB2312。而Visual Studio保存文件时默认采用的是本地编码方式。如果使用Qt Creator读取由Vi原创 2022-04-14 10:53:55 · 722 阅读 · 0 评论 -
Qt 复制一个整体的项目并重命名为新的项目名称
Qt 复制一个整体的项目并命名一、场景在日常的开发过程中,有的时候,我们需要把一个开发好的项目,由于业务原因我们可能需要在原来的项目基础上改个名字继续开发。这个时候我们不能采用原来的项目名称,生成和原来同样名称的可执行文件,又不想麻烦的重新创建一个项目。这时候我们可以直接粘贴复制就行。二、操作比如我们有个项目名称叫做test001。1、我们把test001整个项目文件夹,复制一份,并命名位test002。2、把pro文件和pro.user文件都重新命名为test002..原创 2022-04-09 13:54:59 · 4012 阅读 · 5 评论 -
FFmpeg开发(十一)——Linux系统下安装FFmpeg
FFmpeg开发(十一)——Linux系统下安装FFmpeg一、说明最近,由于项目需要,在Linux系统下需要用到FFmpeg,现在把我自己在linux系统下安装ffmpeg的过程记录下来。我的操作系统使用的是中标麒麟,Qt的版本使用的是Qt 5.6.3.二、下载FFmpeg首先下载FFmpeg的安装文件。我下载了一个4.2.5版本的库。大家可以根据自己的需要下载对应的版本。下载地址:http://ffmpeg.org/download.html#releases三原创 2022-02-22 17:36:59 · 7812 阅读 · 0 评论 -
Qt 设置Widget背景图片并实现透明度的三种方式
一、场景在平常的开发过程中,我们常常会遇到需要设置Widget窗口背景图片透明度的方式。一般会有三种方式可以进行设置。二、方式一(使用图形遮罩功能SerMask函数)class BackGroundWidget01 : public QFrame{ Q_OBJECTpublic: BackGroundWidget01();};BackGroundWidget01::BackGroundWidget01(){ resize(800,600); QPix原创 2022-02-08 17:08:46 · 13607 阅读 · 2 评论 -
浅析Qt中的反射编程
浅析Qt中的反射编程一、反射的基本思想可能你听过Java中的反射概念,但是C++中却没有,不过Qt中支持反射的基本思想。所谓反射,就是指对象成员之间的自我检查。使用反射编程就可以编写出通用的操作,就能对具有各种不同结构的类进行操作二、元对象模式我们知道要想实现Qt的信号和槽功能,我们就必须有Qt的元对象系统,因为这个元对象系统提供了对象之间通信的信号与槽机制、运行时类型信息和动态属性系统等。但是,元对象是基于三个条件的:1、该类必须继承自Qobject类2、必须在类的..原创 2022-01-25 16:11:23 · 2575 阅读 · 0 评论 -
FFmpeg开发(十)——Qt 实现FFmpeg下载m3u8视频
FFmpeg开发(十)——Qt 实现FFmpeg下载m3u8视频之前的文章介绍了如何利用ffmpeg实现一个视频播放器,今天使用ffmpeg在Qt平台下实现下载m3u8视频。FFmpeg开发(四)——Qt实现一个视频播放器(参考了暴风影音、迅雷影音)FFmpeg开发(五)——Qt视频播放器之封装FFmpeg类(参考了暴风影音、迅雷影音)FFmpeg开发(六)——Qt视频播放器之封装音频类(参考了暴风影音、迅雷影音)FFmpeg开发(七)——Qt视频播放器之播放列表类(参考了暴风影音、迅雷原创 2021-11-20 23:16:55 · 2072 阅读 · 0 评论 -
FFmpeg开发(九)——Qt视频播放器之快进滑动条(参考了暴风影音、迅雷影音)
FFmpeg开发(九)——Qt视频播放器之快进滑动条(参考了暴风影音、迅雷影音)上一篇介绍了使用多线程FFmpeg开发(八)——Qt视频播放器之多线程的使用(参考了暴风影音、迅雷影音)本篇写一下滑动条的实现,播放快进滑动条和音量控制滑动条都是重写了QSlider类,主要就是对QSlider进行QSS美化。#include <QObject>#include <QWidget>#include <QSlider>#include <QMouse原创 2021-11-17 17:37:36 · 2801 阅读 · 0 评论 -
FFmpeg开发(八)——Qt视频播放器之多线程的使用(参考了暴风影音、迅雷影音)
FFmpeg开发(八)——Qt视频播放器之多线程的使用(参考了暴风影音、迅雷影音)我们知道Qt的界面主要是一个主线程,如果我们把解码的代码也在主界面类中实现的话,可能会导致主界面在播放视频的过程中出现卡顿的现象。所以我们一般会采用多线程的方式使用。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。...原创 2021-11-17 17:25:54 · 3724 阅读 · 0 评论 -
FFmpeg开发(六)——Qt视频播放器之封装音频类(参考了暴风影音、迅雷影音)
FFmpeg开发(六)——Qt视频播放器之封装音频类(参考了暴风影音、迅雷影音)上一篇介绍了,封装FFmpeg类。本篇介绍封装音频类。本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。...原创 2021-11-17 12:45:33 · 1119 阅读 · 1 评论 -
FFmpeg开发(七)——Qt视频播放器之播放列表类(参考了暴风影音、迅雷影音)
FFmpeg开发(七)——Qt视频播放器之播放列表类(参考了暴风影音、迅雷影音)上一篇分享了音频类的封装。本篇分享实现视频播放器的播放列表。播放列表主要内容就是一个QTableWidget实现的。 m_pTableWidget = new QTableWidget(); m_pTableWidget->setObjectName("TableWidget"); QHeaderView *hHeader = m_pTableWidget->horiz原创 2021-11-17 12:48:04 · 1694 阅读 · 1 评论 -
FFmpeg开发(五)——Qt视频播放器之封装FFmpeg类(参考了暴风影音、迅雷影音)
FFmpeg开发(五)——Qt视频播放器之封装FFmpeg类(参考了暴风影音、迅雷影音)上一篇介绍了,使用Qt和FFmpeg写的播放器。页面大家可以点进去查看和下载。本篇分享一下,封装的FFmpeg类,因为使用的是Qt,所以就按照C++的方式进行了封装。构造函数:FFmpeg::FFmpeg(){ initData();}初始化信息:void FFmpeg::initData(){ m_errorBuff[0] = '\0'; av_regi原创 2021-11-17 11:03:28 · 1866 阅读 · 1 评论 -
FFmpeg开发(四)——Qt实现一个视频播放器(参考了暴风影音、迅雷影音)
FFmpeg开发(四)——Qt实现一个视频播放器(参考了暴风影音、迅雷影音)前几篇介绍了:FFmpeg开发(一)一Qt Creator配置FFmpegFFmpeg开发(二)——(FFmpeg基础知识介绍)在前几篇的基础上,写了一个视频播放器。参考了暴风影音和迅雷影音。开发工具:Qt 5.8.0FFmpeg版本:4.2.1.操作系统:Windows 10先来几张播放器的图片:由于版权问题,只是参考了暴风影音和迅雷影音的界面布局,并没有做成一样....原创 2021-11-17 11:00:27 · 15919 阅读 · 2 评论 -
FFmpeg开发(三)——(FFmpeg的简单应用)
FFmpeg开发(三)——(FFmpeg的简单应用)前两篇介绍了FFmpeg的安装和基本知识。FFmpeg开发(一)一Qt Creator配置FFmpegFFmpeg开发(二)——(FFmpeg基础知识介绍)今天整理下ffmpeg的简单应用。在上篇中,可以知道FFmpeg的解码流程。通过上图,可以看到解码流程。(图片来源于网络)按照流程,我们整理出一个完整的流程代码:int main(){ QString fileName = "C:/Users/feng.原创 2021-11-17 10:19:02 · 1271 阅读 · 0 评论 -
Linux系统下,Qt的float型数据大小端转换
定义一个联合体:(在我使用的Linux系统下,我测试的float型数据大小占4个字节)union UnionIntFloat{ int m_i32; float m_f32;};然后,使用函数进行转换:int swapInt32(int value){ return ((value & 0x000000FF) << 24) | ((value & 0x0000FF00) << 8) | ...原创 2022-01-12 17:51:21 · 1992 阅读 · 0 评论 -
Qt 信号和槽的机制(逻辑清晰的浅谈信号与槽)
信号与槽是Qt特有的的消息传输机制,在Qt中信号与槽用得十分广泛。在编程的过程中,我们都会遇到消息传递的事情,本质上就是发出命令(信号、消息),执行命令(相应的执行)。比如单击窗口上一个按钮然后弹出一个对话框,那么就可以将这个按钮的单击信号和自定义的槽关联起来,信号是按钮的单击信号,槽实现了创建一个对话框并显示的功能。信号与槽就是实现对象之间通信的一种机制,在其他编程语言中也有通过回调机制来实现对象之间的通信。...原创 2021-12-23 17:35:07 · 17078 阅读 · 2 评论 -
FFmpeg开发(二)——(FFmpeg基础知识介绍)
FFmpeg开发——(FFmpeg基础知识介绍)一、原创 2020-04-09 13:37:49 · 1546 阅读 · 1 评论 -
FFmpeg开发(一)一Qt Creator配置FFmpeg
Qt Creator配置FFmpeg一、FFmpeg介绍FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcode...原创 2020-04-07 15:39:48 · 2847 阅读 · 4 评论 -
QtitanRibbon:Qt类跨平台Ribbon UI组件—介绍
QtitanRibbon组件实现了Microsoft Ribbon for Qt的概念,设计用于任何使用Qt开发的商业应用。这个组件和Qt一道为获取一些应用提供了一个难得的机会,这些应用在全球三大主要平台Windows、Linux和Mac OS X上都有现代化的外观和感觉。QtitanRibbon为最终应用提供了5种主题:蓝色、黑色、浅绿色、银色和风景画。下面是真实效果的一些截图。原创 2017-01-12 10:45:06 · 19793 阅读 · 6 评论 -
Qt-echarts的使用
一、原创 2020-03-13 17:05:36 · 676 阅读 · 0 评论 -
Qt教程之——QSS简介一
Qt教程之——QSS简介一原创 2019-12-06 14:26:50 · 328 阅读 · 0 评论 -
Qt 更新翻译(国际化)
一、更新:1、Qt Creator --工具--外部--Qt语言家--更新;2、用Linguist打开.ts文件进行翻译;二、发布:1、更新翻译;2、删除资源文件夹下的.qm文件3、工具--外部--语言家--发布翻译;4、资源文件夹下添加.qm文件;原创 2015-11-06 12:19:38 · 1356 阅读 · 0 评论 -
Qt Creator创建pro文件添加pri文件
步骤1、新建一个工程命名为testQtPri,在testQtPri新建一个testPri文件夹;步骤2、在testPri文件夹下新建一个文件test.pri;步骤3、在工程文件testQtPri.pro里添加include (./testPri/test.pri);步骤4、运行一下,pri文件就导入进来了。原创 2016-04-25 17:37:08 · 6920 阅读 · 0 评论 -
Ubuntu 16.04版本需要安装的软件(包含搜狗输入法,Qt,unrar)
文章非本作者原创,目的用于个人收藏。文章转自(http://blog.csdn.net/skykingf/article/details/45267517),请尊重原作者的知识版权。Ubuntu 16.04发布了,带来了很多新特性,同样也依然带着很多不习惯的东西,所以装完系统后还要进行一系列的优化。1.删除libreofficelibreoffice虽然是开转载 2016-11-04 10:34:51 · 1214 阅读 · 0 评论 -
Linux系统,在图形界面下,设置开机启动程序:如客户端程序(脚本)。
点击“Add”按钮,弹出如下对话框,在对话框中,输入要打开的程序(或脚本)的路径,图中是以fiefox为例,没有写路径。添加完成之后,重启就可以啦。原创 2016-11-04 15:16:07 · 2421 阅读 · 0 评论 -
linux 下Qt初级教程(一)实现简易的计算器
Qt初级教程(一)实现简易的计算器本文原创作者:冯一川(ifeng12358@163.com),如有转载,请注明原作者及出处。本文软件环境linux(Ubuntu)+Qt 5.6.0。源代码github地址:Linux下的简易计算器(Qt)本文使用的技术点有:1、信号和槽的使用,包括(emit)的使用;2、字符串的处理,QString函数;3、QLabel的边框设...原创 2016-11-10 13:59:35 · 9481 阅读 · 2 评论