
Qt
文章平均质量分 68
luoyayun361
不积跬步无以至千里
展开
-
Qt QML实现Windows桌面歌词动态播放效果
使用Qt5.15.2,QML实现简单的歌词动态播放效果。效果图如下:注:这里只是为了演示播放效果,并未真正加载音频进行播放。可以在此基础上进行扩展。原创 2025-04-17 19:30:00 · 334 阅读 · 0 评论 -
Qt QML实现Windows桌面颜色提取器
实现一个简单的小工具,使用Qt QML实现Windows桌面颜色提取器,实时显示鼠标移动位置的颜色值,包括十六进制值和RGB值。该功能在实际应用中比较常见,比如截图的时候,鼠标移动就会在鼠标位置实时显示坐标和颜色值,做项目实现UI的时候可能会经常用到这个功能,快速提取设计图的颜色值。效果图如下:代码使用Qt 5.15.2版本实现,QML实现UI交互。后期可以在此基础上扩展更多的功能,比如鼠标右键的时候,就暂停提取,然后添加一个复制按钮,可以方便复制当前的颜色值,然后直接取用。原创 2025-04-16 19:30:00 · 473 阅读 · 0 评论 -
Qt6+QML实现Windows屏幕录制
Qt6提供了更丰富的多媒体支持类,使用Qt6 QMediaCaptureSession、QScreenCapture、QMediaRecorder,来实现一个屏幕录制的demo,其中QScreenCapture 最低版本 Qt6.5。支持录制的清晰度设置,选择视频保存位置,UI使用QML来实现。Qt6还有一个比较好用的类 QWindowCapture, 可以针对窗口录屏。使用静态函数可以获取当前可用的录制窗口,选择窗口进行录制。可以在本demo的基础上进行扩展。原创 2025-03-20 08:46:55 · 755 阅读 · 0 评论 -
QT QML实现音频波形图进度条,可点击定位或拖动进度
本项目实现了使用QT QML创建一个音频波形图进度条的功能。用户可以在界面上看到音频波形图,并且可以点击进度条上的位置进行定位,也可以拖动进度条来调整播放进度。可以让用户更方便地控制音频的播放进度,并且通过音频波形图可以直观地了解音频的节奏和节奏变化,为音频播放功能增添了更多的交互性和用户体验。原创 2025-03-18 19:00:00 · 464 阅读 · 0 评论 -
Qt QML解决SVG图片显示模糊的问题
在QML中直接使用SVG图片,使用Image控件加载资源,显示出来图片是模糊的,很影响使用体验。本文介绍重新绘制SVG图片,然后注册到QML中使用。效果图:左边是直接使用Image加载资源显示的效果右边是重绘后的效果。原创 2025-03-17 21:00:00 · 564 阅读 · 0 评论 -
Qt QML实现视频帧提取
视频是由一系列静止的图像帧组成的,而视频帧率则决定了这些图像帧在单位时间内播放的速度。较高的视频帧率可以提供更流畅的视频画面,而较低的视频帧率则可能导致画面卡顿和不连贯的情况。在实际的应用开发中,经常会遇到需要处理视频的情况,例如提取视频帧用于图像处理、分析等应用。本文将介绍如何利用Qt QML实现视频帧的提取,通过简单的代码示例将图片提取保存到本地中。本示例通过QML实现UI,Qt5.15 cmake编译,使用多线程处理提取,保证UI主线程不会卡顿,将提取的图片保存到本地。原创 2025-03-17 19:00:00 · 452 阅读 · 0 评论 -
Windows Qt动态监测系统分辨率及缩放比变化
Windows 显示设置中,可以修改缩放比,所有界面和文字会同比例放大或缩小,在开发桌面程序时, 实时监测Qt应用程序在不同缩放比例下的表现,可以及时调整程序界面以适应不同显示屏幕的需求。原创 2025-03-16 11:04:40 · 662 阅读 · 0 评论 -
Qt QML实现弹球消砖块小游戏
弹球消砖块游戏想必大家都玩过,很简单的小游戏,通过移动挡板反弹下落的小球,然后撞击砖块将其消除。本文使用QML来简单实现这个小游戏。原创 2025-03-14 23:41:08 · 467 阅读 · 0 评论 -
Qt QML实现鼠标自由选择不规则区域进行截图
不规则区域进行截图是一种常见的应用场景,通常用于程序截图工具或者图像处理软件中。主要是为了让用户可以自由选择任意形状的区域进行截图,而不仅仅局限于矩形区域。这样用户可以更灵活地进行截图操作,特别是对于需要截取特定形状区域的情况下非常实用。通过实现鼠标自由选择不规则区域进行截图,用户可以更精确地选择需要截取的内容,避免不必要的部分被包含在截图中。可以看到,截图内容是根据鼠标自由选区来截取不规则的图形,其他区域为透明的。原创 2025-03-14 18:06:28 · 921 阅读 · 0 评论 -
Trae+Qt+MSVC环境配置
OK,既然是基于VSCode,那其实用法跟VSCode都差不多的。正常来说,使用MSVC编译器,应该是对应使用nmake命令进行编译,但是由于nmake是单线程编译,速度比较慢,而QtCreator里面默认是配置用jom编译,jom支持多线程编译,速度很快,并且完全兼容nmake编译,所以上面添加Qt环境变量中,添加了QtCreator目录下的jom目录,就是为了能够使用jom进行编译。内容其实很简单,就是配置每一项需要执行的任务,自定义相关标签,标明是要做什么任务的,然后指定任务的执行命令即可。原创 2025-02-22 11:39:22 · 3800 阅读 · 3 评论 -
Qt for Python (PySide6)设置程序图标和任务栏图标
先上一个简单的测试程序import sysapp.exec()原创 2024-12-19 17:36:50 · 1703 阅读 · 0 评论 -
Qt QGraphics导入背景图并绘制图形,画布移动、缩放、图形旋转等
之前写过一篇博文《Qt鼠标拖动绘制基本几何图形》,这是介绍使用QGraphic中利用鼠标事件实现基本几何图形的绘制,支持直线、矩形、圆形、椭圆,本次是在此基础上进行扩展,实现背景图导入,并在图片上进行几何图形绘制,包括矩形、圆形等,支持画布整体移动、放大和缩小,画布恢复,图形item选中、移动、旋转、item移动,会实时显示全局坐标以及相对于背景画布的坐标。本文提供基本功能实现,便于后期在此基础上进行扩展。本文Demo下载。原创 2023-06-30 14:38:09 · 2067 阅读 · 3 评论 -
Qt关于QPainter绘制1px宽度图形带来的问题思考
前段时间遇到这样一个问题,使用QPainter绘制直线的时候,设置了笔宽为1像素,但是绘制出来的线条却是2px宽度,而且设置的画笔颜色很明显是降低了透明度,不是最“纯正”的颜色。当时就感觉非常奇怪,明明设置的画笔宽度是正常的,为啥绘制出来不是自己想要的样子。而且,当画笔宽度设置为2px后,发现结果又是正常的,透明度也是正常。后来一句句的代码排查问题才发现了其中的猫腻。原创 2023-04-16 21:58:39 · 2146 阅读 · 0 评论 -
QML自定义模块及qmldir的使用
在开发QtQuick项目中,当项目文件很多的情况下,可能会分成多级文件夹来进行分类,还有一些通用类型文件,如公共组件,通用配置等等,需要在各个不同的文件中进行调用,这种情况下,一种方式是在当前需要引用的文件中通过关键字import加上相对路径,从而找到通用文件目录。另一种方式就是将通用文件目录设置成qml模块形式,通过import直接引入模块名称就可以直接调用相关qml了,这样的好处是在任何不同的目录中都可以随处导入模块,而不用考虑相对路径的问题。原创 2023-04-16 13:44:52 · 1714 阅读 · 1 评论 -
关于KDDockWidget源码修改和自定义
KDDockWidgets源码编译及安装qml dockwidget窗口停靠QML + KDDockWidget 实现 tabwidget效果( 窗口可独立浮动和缩放)今天主要记录一些在KDDockWidget源码中的修改,修改源码的目的是为了根据自己的项目来实现相关风格,KDDockWidget是第三方开源代码, 不是Qt官方的,提供的可修改的接口不一定非常完善,而且部分功能还会有bug。总之,要想实现自有风格的样式,原有接口不满足的情况下,就得去改源码了。原创 2023-01-17 16:21:45 · 1514 阅读 · 0 评论 -
Qt6 qtmqtt编译及演示示例(附带动态库)
随着物联网的不断发展,如今很多项目都需要接入,而两年前也是因为项目需要,了解了一些关于mqtt的用法,并将其过程记录成几篇博客,近一年多时间陆陆续续有好多人私信咨询关于mqtt相关的问题,其中又有很多是关于最基础的源码编译相关的。我之前刚接触的时候还没有Qt6,那时候我的编译环境是,下载代码后直接qmake编译,编译过程也很顺利,基本没遇到什么困难,一路畅通。原创 2022-12-16 13:12:02 · 6001 阅读 · 10 评论 -
QML + KDDockWidget 实现 tabwidget效果( 窗口可独立浮动和缩放)
前面文章介绍过在QML中使用ListView实现TabBar标签拖拽交换位置效果(文章在这里)先在此基础上升级一下,结合KDDockWidget做一个可浮动的窗口效果。关于KDDockWidget的介绍,以前的文章有写过,可参考:qml dockwidget窗口停靠KDDockWidgets源码编译及安装KDDockWidget是第三方开源项目,可以用于实现QML中Dock窗口效果,Qt本身不支持QML的Dock效果,所以正好弥补这部分空缺。而KDDockWidget中其实是支持Tab合并效果,但是在实原创 2022-12-05 18:31:52 · 2365 阅读 · 7 评论 -
Qt+opencv 鼠标画线实现几何图形识别并动态创建
使用Qt + OpenCV实现,通过鼠标画线绘制几何图形,然后通过opencv进行图形轮廓识别,返回图形顶点,然后创建对应的几何图形添加到场景中。绘制使用QGraphics体系完成。看效果图:本文demo在这里点击下载环境: Qt5.15.2 + vs2019 64bit支持图形:直线、圆、椭圆、矩形、三角形。快捷键:数字3 清屏demo的功能实现流程如下:在临时画线层绘制,然后将绘制的图形保存成一张临时图片,再将其传给opencv进行轮廓检测,返回轮廓点后再计算出轮廓顶点坐标,将坐标交给Qt层动态原创 2022-12-04 11:59:23 · 2637 阅读 · 0 评论 -
Qt实现桌面画线、标记,流畅绘制,支持鼠标和多点触控绘制
经常会在网上直播讲课或者点评中看到可以在课件上或者桌面上进行画线标记划重点,其实实现并不难,原理就是在桌面上盖一个透明图层,然后根据鼠标点绘制曲线。今天分享如何通过Qt的QGraphics体系来实现这个功能,以前的文章已经介绍过使用Qt进行曲线绘制及相关原理,所以这里就不再重复了,直接讲关键部分代码。原创 2022-10-26 22:30:57 · 5422 阅读 · 0 评论 -
解决Qt程序桌面图标有锯齿的问题
Qt开发windows桌面程序,经常会看到应用程序图标有锯齿或者不清晰的情况,其实原因就是设置的桌面图标(.ico)是固定尺寸的,大尺寸图标缩小后会有锯齿,小尺寸图标放大后又模糊,而桌面图标会根据用户的设置显示大图标或者小图标格式,所以如果设置一张固定尺寸的logo就会出现这种现象。原创 2022-09-28 16:05:35 · 1546 阅读 · 0 评论 -
Qt实现一个简易截图工具(支持缩放、移动、保存、复制到粘贴板)
windows平台,使用QtWidget实现一个简易截图工具,支持选区角落拖动缩放、选区移动,支持保存,复制到粘贴板,支持快捷键调出截图、退出截图。暂不支持对截图进行编辑操作,以及鼠标移动到程序窗口可以自动识别,后去有需求可以加上。先看效果选区后会弹出三个按钮,从左到右分别是退出、保存到文件、复制到粘贴板。如果选择复制到粘贴板,就可以直接在其他地方进行粘贴截图。当鼠标在选区上下左右四个角落按下后会出现操作选区,此时拖动鼠标可以改变选区大小。选区左上角可以实时显示选区的尺寸。快捷键操作。.........原创 2022-08-01 11:40:12 · 1503 阅读 · 0 评论 -
Qt之FTP实现-QFtp实例操作
前面写了三篇关于FTP的blog,关于QFtp相关介绍,FTP本地环境搭建。地址如下:Qt三种方式实现FTP上传功能Qt之FTP实现–QFtp篇win11系统搭建FTP服务器超详细流程今天具体来根据QFtp写个实例介绍如何在实际项目中使用其相关接口。主要为了演示接口使用,所以做了个简单的UI,没那么精致,凑合着看。本文Demo下载以上示例包含了FTP登录,为方便演示,本次连接的FTP服务器就是上篇文章中介绍的在windows本机搭建的FTP服务器。Demo功能包括:选择文件夹进行批量上传文件,列举原创 2022-06-22 23:06:27 · 5369 阅读 · 0 评论 -
KDDockWidgets源码编译及安装
简介KDDockWidgets 是由 KDAB(官网) 编写的 Qt Dock 小部件库,适用于替换 QDockWidget和实现 Qt 中缺少的高级功能。功能特点:提供 QDockWidget 不支持的高级对接在 Windows 上调整本机窗口大小(即使使用自定义标题栏装饰也允许 Aero-snap)箭头下降指示器可实现出色的下降精度允许完全不同的、用户提供的、丢弃指示器类型在浮动窗口中嵌套停靠小部件并将该组停靠回主窗口停靠到任何主窗口,而不仅仅是父主窗口停靠到主窗口的中心,或者干脆原创 2021-06-05 11:21:59 · 3306 阅读 · 9 评论 -
Qt 反射机制实现,通过类名创建对象
首先说一下什么是反射:再简单一点说,就是可以通过类名称来创建一个类对象,这在Java和Object-C中是原生支持的,所以实现起来非常简单,但是C++就不支持了,如果想要用到反射机制,那就得自己实现。文中Demo下载在计算机编程语言中,反射机制可以用来:性能:反射可以理解成是一种解释操作,这个过程总是要慢于直接调用的。当然,性能问题的程度是可以控制的,如果程序在很少涉及的地方使用,性能将不会是一个问题。适用于性能不敏感的部分。反射模糊了程序内部实际发生的事情,会比直接代码更加复杂。增加了理解代码的难度。原创 2022-06-02 11:57:31 · 1928 阅读 · 1 评论 -
Qt windows打开资源管理器并高亮文件
一段简单代码分享,Qt windows 平台下,通过文件路径,打开资源管理器并高亮选中文件。原创 2022-05-07 15:03:47 · 1054 阅读 · 0 评论 -
Qt Linux获取bios ID作为唯一标识
Qt linux下获取设备唯一标识符,可以使用bios ID,通过QProcess来执行linux命令从而获取。原创 2022-05-07 14:56:48 · 1686 阅读 · 0 评论 -
QPixmap、QImage、QPicture、QBitmap四者区别
QPixmap1、QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,QImage主要是为图像I/O、图片访问和像素修改而设计的2、QPixmap依赖于所在的平台的绘图引擎,故例如反锯齿等一些效果在不同的平台上可能会有不同的显示效果,QImage使用Qt自身的绘图引擎,可在不同平台上具有相同的显示效果3、目前的Qt会把QPixmap都存储在graphics memory中,QImage是存储在客户端的,是独立于硬件的。在 X11, Mac 以及 Symbian平台上,QPixmap 是存储在服务器原创 2022-03-09 21:30:58 · 5393 阅读 · 3 评论 -
那些常见的C++、Qt基础面试题
前言又到了金三银四的季节,每年这个时候都是跳槽的高峰期,在整理电脑资料的过程中发现一些之前记录的面试过程中最常提到的C++和Qt相关问题,其实都是些很基础的知识点,但是在面试过程中出镜率非常高。总结如下,暂不附答案,仅供参考。正文废话不多说,直接上题。C++基础篇1.线程同步的方式有哪些2.线程间通信如何实现3.进程间通信如何实现4.IO模型用过哪些5.IO实现的方式有哪些6.用过哪些STL7.迭代器实现怎么产生的,如何避免8.vector、list、map实现原理9.如何实现多原创 2022-03-05 08:58:33 · 11014 阅读 · 2 评论 -
最简单的方式实现QML无边框窗口边缘拖动调整大小
前言使用Qt在开发桌面程序时,通常会去除默认的程序边框,从而实现自定义的标题栏。然而当设置窗口属性为Qt.FramelessWindowHint后,窗口的拖动,以及在边缘拖动缩放的功能就没有了,在以前的Qt版本中,就需要自己写很多繁琐代码来实现这些功能,尽管Qt为此也提供了一个类 QSizeGrip,但是它仅仅只能在窗口角落进行调整,在窗口上下左右边缘是不行的。庆幸的是,在Qt5.15中官方在QWindow中提供了两个新的方法:startSystemMove和startSystemResize。这些方法原创 2022-02-11 18:03:44 · 6234 阅读 · 10 评论 -
关于C++ Qt项目实现最简单Http Server的踩坑记录
前言在开发Qt项目中,需要实现一个Http服务器功能,接收并处理客户端的http请求,Qt的发行版中并没有提供相应的类来处理,所以要实现该功能只能找其他开源项目了,本文主要记录我在收集相关资料过程中踩过的坑,希望能给需要的人提供一点帮助。qthttpserver前面说到,Qt官方在发行版中并没有提供相应的类来实现HTTP 服务端,但是Qt-lab中提供了一个qthttpserver,Github地址在这里,不知道基于什么原因Qt官方没有将其纳入正式的Qt发行版中,如果要使用qthttpserver的话原创 2021-10-30 17:54:37 · 4818 阅读 · 1 评论 -
使用QtService实现Qt后台服务程序
QtServiceQtService是一个用于实现windows服务或unix守护进程的开源项目,下载地址本文使用QtService演示如何实现一个windows下的后台进程,可用于一些简单的windows服务程序中。源码在以上地址中将源代码下载到本地,目录结构如下:这里面有包含了几个示例程序,可以做参考。可以直接编译源码生成动态库然后在自己项目中使用,当然也可以直接在项目中引用源码。示例为方便演示,我们新建一个工程,介绍如何使用。新建一个控制台程序然后将qtservice源码拷贝到项原创 2021-10-08 17:26:25 · 12789 阅读 · 8 评论 -
Qt之FTP实现--QFtp篇
前言前文已经介绍了Qt项目中实现FTP上传文件的三种实现方式,今天主要看QFtp的实现,以及接口在使用过程中需要注意的问题避坑。正文首先我们要知道ftp服务器端的IP地址,以及端口号,前面我们介绍到FTP协议有两种方式,主动模式和被动模式(这里不做过多介绍,感兴趣的可以去查阅相关资料),通常开发都是使用被动模式,这种比较简单,由服务器端默认端口地址为21,客户端连接。接着需要登录ftp的账号和密码,知道这几个数据后就可以连接服务器了。我们看一下相关接口:QFtp ftp;ftp.connect原创 2021-09-09 18:42:10 · 16022 阅读 · 11 评论 -
Qt三种方式实现FTP上传功能
前言废话不多说,直接先上结果。三种方式实现Qt项目中的Ftp传输功能:1、Qt4 QFtp2、Qt5 QNetworkAccessManager3、POCO中的 FTPClientSession接下来我们一一分析这几种方式的优缺点。QFtp先来说说QFtp,QFtp是Qt4中的专门负责Ftp传输的类,Ftp相关的常用接口都已经包含了,比如说:创建目录、删除目录、删除文件、获取文件列表、上传、下载等等常规操作。 int setProxy(const QString &host, qu原创 2021-09-07 17:30:56 · 10405 阅读 · 0 评论 -
Linux(UOS) Qt不能播放音频的问题
网上有很多关于编译Qt 源码时配置configure的文章,但是需要注意的是,不同Qt 版本可能对应的configure配置会有差异,特别是大版本之间,所以网上的有些配置并不一定能适用你当前的Qt版本,除非用的Qt版本一样。这里可以看几项对于audio的编译配置,主要是前两个,在linux x86环境下通过Qt 安装包安装的目录下,插件audio中可以看到两个库,在编译之前还有一个地方要注意,要编译libqtaudio_alsa这个库必须要先在本机安装 alsa,可以通过。这样基本就没问题了。原创 2021-07-30 11:53:17 · 3040 阅读 · 0 评论 -
Qt5.15.2 Linux ARM架构源码编译安装(UOS20国产系统)
环境国产系统:UOS20内核版本:4.19.0-arm64-desktop处理器:华为鲲鹏920@2.6GHz目标,将现有Qt项目移植到改系统下进行开发。开始准备安装Qt5.15.2 ,Qt官方提供的安装包都是x86架构下的,不能直接在arm架构下安装,网上看了很多示例,说可以直接在终端通过命令行来安装:sudo aptitude install libdtkwidget-dev qt5-default qtcreator qtdeclarative5-dev这样确实可以安装Qt,但是装的是原创 2021-07-05 18:17:43 · 24009 阅读 · 0 评论 -
ubuntu下qt运行报错 /usr/bin/ld: cannot find -lGL
问题描述在Ubuntu下运行Qt程序报错:/usr/bin/ld: cannot find -lGLcollect2: error: ld returned 1 exit status解决方案需要安装gl库:执行以下命令sudo apt-get install libgl1-mesa-dev原创 2021-06-27 18:53:37 · 595 阅读 · 0 评论 -
Qt5.15.2+VS2019安装小结
Qt安装Qt 公告中提出:从 Qt 5.15 开始,开源版本,无论是不是 LTS,都只能在线安装。如果确实需要离线安装包,则要购买 Qt for Small Business 产品Qt 5.15 是 Qt5 最后的LTS(长维护版本),同时 Qt 5.9 LTS 也将于5月31日终止。Qt 5.15 可视为 Qt 6 的铺垫,例如该版本的 QML 包含许多新特性对于桌面应用,Qt 5.15 开始支持自定义标题栏Qt5.15详细更新信息请参考Qt在线安装器下载下载后打开需要先登录Qt账号,然后原创 2021-06-05 11:23:38 · 3577 阅读 · 0 评论 -
【windows】Qt打开资源管理器并选中指定文件
前言在实际应用中,可能会有这样的需求,在软件中的文件树可以通过右键菜单打开windows系统的资源管理器,并在窗口中选中指定的文件,原有的做法是直接通过QDesktopServices::openUrl来打开资源管理器,但是并不能实现高亮选中文件。要实现这个功能其实并不难,需要执行终端命令:explorer /select,xxx,Qt应用可以直接使用QProcess来执行终端命令。ok,简单封装接口,以备后续所需。代码void openExplorerFile(const QString &am原创 2021-05-31 21:23:54 · 4541 阅读 · 0 评论 -
Qt6.0+vs2019环境配置
前言2020年12月8号,期待已久的Qt6.0正式发布。关于Qt6.0的更新说明,具体参考:https://wiki.qt.io/New_Features_in_Qt_6.0本文主要介绍win10下安装Qt6.0+VS2019的环境 。下载地址从Qt5.15开始,官网已经不提供离线安装包下载,只能用在线安装的方式。VS2019下载地址:https://visualstudio.microsoft.com/zh-hans/vs/Qt6.0安装器下载地址:http://download.qt.i原创 2021-01-04 11:45:51 · 6867 阅读 · 2 评论 -
Qt Creator常用快捷键及技巧提升编码效率
前言Qt Creator是Qt官方提供的一个IDE,该软件本身也是用Qt来写的,界面简单操作便捷,并且可以快速的查看各个类的帮助文档,在编写代码过程中结合一些常用的快捷键,可以很大程度的提高开发效率,个人觉得使用会比Visio studio方便得多。我个人也是长期使用Qt Creator来编写程序,以下整理了一些自己常用的快捷键设置,若有其它更多的快捷操作,欢迎一起交流。定义触发片段我们在Q...原创 2020-04-10 19:52:26 · 7538 阅读 · 0 评论