- 博客(392)
- 资源 (46)
- 收藏
- 关注

原创 Qt实现桌面画线、标记,流畅绘制,支持鼠标和多点触控绘制
经常会在网上直播讲课或者点评中看到可以在课件上或者桌面上进行画线标记划重点,其实实现并不难,原理就是在桌面上盖一个透明图层,然后根据鼠标点绘制曲线。今天分享如何通过Qt的QGraphics体系来实现这个功能,以前的文章已经介绍过使用Qt进行曲线绘制及相关原理,所以这里就不再重复了,直接讲关键部分代码。
2022-10-26 22:30:57
5361

原创 git 常用操作
在当前分支上新建本地分支git checkout -b branch_new删除本地分支git branch -d branch_new将本地分支上传到远程分支并建立连接(建立连接后才能在本地提交今后的变更)git push origin develop:developgit branch --set-upstream-to=orgin/develop删除远程分支git push --delete origin dev修改远程分支名称git branch -m branch_ol
2021-07-05 14:57:49
712

原创 Qt 实现钢笔画线效果详细原理
前言上一篇文章:Qt 实现画线笔锋效果详细原理,根据这篇介绍的实现笔锋效果的原理,我们很容易实现另外一种笔效:钢笔。所谓的钢笔笔效,就是真实还原钢笔书写出来的线条效果,其特征就是:根据笔的绘制速度而线条的宽度会逐渐变化,写得越快,线条越细,并且在收笔时带有笔锋效果。那么,在上一篇文章的基础上,稍微修改一下,就可以实现这个效果,看下效果图:实现原理从上一篇文章我们知道,绘制的曲线是通......
2020-02-16 13:08:58
4043
3

原创 Qt鼠标拖动绘制基本几何图形
用Qt鼠标事件实现基本几何图形的绘制,支持直线、矩形、圆形、椭圆。后期可以在此基础上进行扩展。本文Demo下载地址。
2019-06-27 18:58:08
13993
31

原创 Qt 鼠标/触屏绘制平滑曲线,支持矢量/非矢量方式
前言Qt通过鼠标或者触屏,实时绘制平滑曲线,通常有两种方式实现:矢量绘图和非矢量绘图,这两种画线方式从实现上有些不同,其原理也不太一样,稍后会做详细介绍。而鼠标或者触屏画线也不大一样,通常如果只实现鼠标画线的话,那么只需要重新实现鼠标事件即可(mousePressEvent、mouseMoveEvent、mouseReleaseEvent),而要在触控屏上画线,如果需要支持多点画线的话,就必须处......
2019-06-26 20:05:39
6179
18
原创 Qt6+QML实现Windows屏幕录制
Qt6提供了更丰富的多媒体支持类,使用Qt6 QMediaCaptureSession、QScreenCapture、QMediaRecorder,来实现一个屏幕录制的demo,其中QScreenCapture 最低版本 Qt6.5。支持录制的清晰度设置,选择视频保存位置,UI使用QML来实现。Qt6还有一个比较好用的类 QWindowCapture, 可以针对窗口录屏。使用静态函数可以获取当前可用的录制窗口,选择窗口进行录制。可以在本demo的基础上进行扩展。
2025-03-20 08:46:55
674
1
原创 QT QML实现音频波形图进度条,可点击定位或拖动进度
本项目实现了使用QT QML创建一个音频波形图进度条的功能。用户可以在界面上看到音频波形图,并且可以点击进度条上的位置进行定位,也可以拖动进度条来调整播放进度。可以让用户更方便地控制音频的播放进度,并且通过音频波形图可以直观地了解音频的节奏和节奏变化,为音频播放功能增添了更多的交互性和用户体验。
2025-03-18 19:00:00
393
原创 Qt QML解决SVG图片显示模糊的问题
在QML中直接使用SVG图片,使用Image控件加载资源,显示出来图片是模糊的,很影响使用体验。本文介绍重新绘制SVG图片,然后注册到QML中使用。效果图:左边是直接使用Image加载资源显示的效果右边是重绘后的效果。
2025-03-17 21:00:00
461
原创 Inno Setup打包脚本区分Windows系统版本
使用Inno Setup打包Windows桌面程序,有时候可能需要根据系统版本不同来处理对应的流程, 比如安装不同的驱动,或者执行不同的脚本等等,本文主要阐述如何在打包脚本中添加函数去判断不同的系统版本。
2025-03-17 20:50:22
146
原创 Qt QML实现视频帧提取
视频是由一系列静止的图像帧组成的,而视频帧率则决定了这些图像帧在单位时间内播放的速度。较高的视频帧率可以提供更流畅的视频画面,而较低的视频帧率则可能导致画面卡顿和不连贯的情况。在实际的应用开发中,经常会遇到需要处理视频的情况,例如提取视频帧用于图像处理、分析等应用。本文将介绍如何利用Qt QML实现视频帧的提取,通过简单的代码示例将图片提取保存到本地中。本示例通过QML实现UI,Qt5.15 cmake编译,使用多线程处理提取,保证UI主线程不会卡顿,将提取的图片保存到本地。
2025-03-17 19:00:00
396
原创 Windows Qt动态监测系统分辨率及缩放比变化
Windows 显示设置中,可以修改缩放比,所有界面和文字会同比例放大或缩小,在开发桌面程序时, 实时监测Qt应用程序在不同缩放比例下的表现,可以及时调整程序界面以适应不同显示屏幕的需求。
2025-03-16 11:04:40
581
原创 Windows Python获取硬件信息
当开发Python应用程序时,通常会需要获取计算机的硬件信息来优化程序性能或者实现特定功能。在Windows操作系统中,可以借助Python的一些库来轻松实现硬件信息的获取。本篇博客将介绍如何使用Python在Windows系统中获取计算机的硬件信息,包括获取CPU序列号、获取主板序列号、BIOS序列号等。
2025-03-15 22:27:10
168
原创 Qt QML实现弹球消砖块小游戏
弹球消砖块游戏想必大家都玩过,很简单的小游戏,通过移动挡板反弹下落的小球,然后撞击砖块将其消除。本文使用QML来简单实现这个小游戏。
2025-03-14 23:41:08
432
原创 Qt QML实现鼠标自由选择不规则区域进行截图
不规则区域进行截图是一种常见的应用场景,通常用于程序截图工具或者图像处理软件中。主要是为了让用户可以自由选择任意形状的区域进行截图,而不仅仅局限于矩形区域。这样用户可以更灵活地进行截图操作,特别是对于需要截取特定形状区域的情况下非常实用。通过实现鼠标自由选择不规则区域进行截图,用户可以更精确地选择需要截取的内容,避免不必要的部分被包含在截图中。可以看到,截图内容是根据鼠标自由选区来截取不规则的图形,其他区域为透明的。
2025-03-14 18:06:28
875
原创 Windows Qt开发到底选MSVC编译还是MinGW编译?
MSVC(Microsoft Visual C++)是微软官方推出的C++编译器套件,通常与Visual Studio开发环境深度绑定。作为Windows平台的原生编译器,它与操作系统底层API(如DirectX、COM组件)有天然的兼容优势。Qt官方为每个版本都提供预编译的MSVC库文件,开发者安装后即可快速使用。但需要注意其依赖VC++运行库(VC++ Redistributable),这意味着软件部署时需要确保目标机器已安装对应版本运行库或打包到安装程序中。
2025-02-28 23:41:00
862
原创 Trae+Qt+MSVC环境配置
OK,既然是基于VSCode,那其实用法跟VSCode都差不多的。正常来说,使用MSVC编译器,应该是对应使用nmake命令进行编译,但是由于nmake是单线程编译,速度比较慢,而QtCreator里面默认是配置用jom编译,jom支持多线程编译,速度很快,并且完全兼容nmake编译,所以上面添加Qt环境变量中,添加了QtCreator目录下的jom目录,就是为了能够使用jom进行编译。内容其实很简单,就是配置每一项需要执行的任务,自定义相关标签,标明是要做什么任务的,然后指定任务的执行命令即可。
2025-02-22 11:39:22
2028
原创 Qt for Python(PySide6)开发中遇到的各种问题及解决方案
qml要放进资源文件中去,要不然打包的时候就需要将qml源码放到打包目录中,否则运行的时候找不到。如果将qml放到资源文件中,通过rcc将qrc文件转换成py文件,这样就无法将qml源文件放进打包的运行目录,防止源码泄露。通过以上设置后,就可以在主窗口右键快捷使用对应的工具了,比如qt的资源文件.rc ,要想在PySide中编译使用,需要将其转换成py文件。同理,Qt的.ui文件也是需要转换成py文件才能使用的,按照以上方法 右键点击 PySide6_uic即可。可选择想要添加的解释器类型。
2024-12-31 14:24:15
1493
原创 Linux国产UOS系统Qt程序打包流程
然后就会自动将其依赖文件拷贝到当前目录下的lib文件夹中了,但是只有一些系统库和Qt相关的库,如果项目使用了第三方动态库,需要手动拷贝到当前目录。是打包需要用到的,在opt中创建一个以软件名称命名的文件夹,用于存放需要打包的软件以及相关的所有依赖文件,将其全部拷贝到该目录下即可。Ok,配置完成后,需要给.desktop文件设置执行权限,该文件才能变成图标,否则只是显示一个普通文件。,但是也只能简单拷贝部分的依赖库,所以可能会遗漏。所有安装的软件,包括微信、qq等,在开始菜单中右键卸载,都会提示卸载失败。
2024-12-30 11:16:43
1199
原创 Linux arm 编译安装glibc-2.29
问题在使用Qt WebEngine测试过程中,遇到一个问题:libm.so.6: version GLIBC_2.29 not found (required by ./libicui18n.so.69)需要安装GLIBC_2.29的包。下载//创建一个文件夹并打开,用于存储下载的文件cd glibcwget http://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz //jieyatar -xvf glibc-2.29.tar.gz解压后进入到文件夹中
2024-12-26 11:45:58
655
原创 QML实现文件十六进制数据展示
将一个二进制文件直接拖放到Qt Creator中可以直接查看到以十六进制显示的数据格式,如:要实现一个这样的效果,还是要花不少时间的。在网上找了挺多示例,其中一个开源代码效果不错(参考这里),但是是在QWidget中实现的,通过继承QAbstractScrollArea来实现数据滚动绘制。如果QML中要自定义在paint中绘制,需要继承QQuickPaintedItem,那要实现这样的滚动分页展示就比较麻烦了。
2023-09-08 17:33:34
1478
原创 Qt QGraphics导入背景图并绘制图形,画布移动、缩放、图形旋转等
之前写过一篇博文《Qt鼠标拖动绘制基本几何图形》,这是介绍使用QGraphic中利用鼠标事件实现基本几何图形的绘制,支持直线、矩形、圆形、椭圆,本次是在此基础上进行扩展,实现背景图导入,并在图片上进行几何图形绘制,包括矩形、圆形等,支持画布整体移动、放大和缩小,画布恢复,图形item选中、移动、旋转、item移动,会实时显示全局坐标以及相对于背景画布的坐标。本文提供基本功能实现,便于后期在此基础上进行扩展。本文Demo下载。
2023-06-30 14:38:09
2032
3
原创 Qt读写CSV文件的几种方式及优劣
作为一种常见的数据交换格式,CSV(Comma Separated Values)文件常常用于数据导出和导入等场合。在实际开发中,我们也需要使用Qt来实现CSV文件的读写操作。本篇博客将介绍使用Qt实现CSV读写的方法,并分析每种实现方式的优缺点。使用QStringList及QTextStream实现CSV文件读写;使用QTextCodec及QByteArray实现CSV文件读写;使用QStandardItemModel实现CSV文件读写;
2023-04-22 16:18:12
12089
2
原创 Qt关于QPainter绘制1px宽度图形带来的问题思考
前段时间遇到这样一个问题,使用QPainter绘制直线的时候,设置了笔宽为1像素,但是绘制出来的线条却是2px宽度,而且设置的画笔颜色很明显是降低了透明度,不是最“纯正”的颜色。当时就感觉非常奇怪,明明设置的画笔宽度是正常的,为啥绘制出来不是自己想要的样子。而且,当画笔宽度设置为2px后,发现结果又是正常的,透明度也是正常。后来一句句的代码排查问题才发现了其中的猫腻。
2023-04-16 21:58:39
2094
1
原创 QML自定义模块及qmldir的使用
在开发QtQuick项目中,当项目文件很多的情况下,可能会分成多级文件夹来进行分类,还有一些通用类型文件,如公共组件,通用配置等等,需要在各个不同的文件中进行调用,这种情况下,一种方式是在当前需要引用的文件中通过关键字import加上相对路径,从而找到通用文件目录。另一种方式就是将通用文件目录设置成qml模块形式,通过import直接引入模块名称就可以直接调用相关qml了,这样的好处是在任何不同的目录中都可以随处导入模块,而不用考虑相对路径的问题。
2023-04-16 13:44:52
1604
1
原创 C++11 tuple元组基本用法
元组tuple是C++11的一个新特性,它是一个固定大小的不同类型值的集合,是泛化的std::pair。也可以当作一个通用的结构体来用,不需要创建结构体又获取结构体的特征,在某些情况下可以取代结构体,使程序更简洁、直观。tuple可以说是一个既简单又复杂的类型,简单的一面是很容易使用,复杂的是它内部隐藏了很多细节,往往要和模板元的一些技巧结合起来使用。
2023-04-11 10:10:17
1418
转载 图解 C++ 对象模型,看这一篇就够了!
《深度探索C++对象模型》这本书对对象模型的描述如下:语言中直接支持面向对象程序设计的部分,包括了构造函数、析构函数、多态、虚函数等等。对象模型的底层实现机制并未标准化,不同编译器有一定的自由来设计对象模型的实现细节。在我看来,对象模型研究的是对象在存储上的空间和时间上的更优,并对C++面向对象技术加以支持,如以虚指针、虚表机制支持多态特性。C++中虚函数的作用主要是为了实现多态机制。多态,简单来说,是指在继承层次中,父类的指针可以具有多种形态—当它指向某个子类对象时,通过它能够调用到子类的函数,而非父类的
2023-02-02 21:45:00
1988
2
原创 关于KDDockWidget源码修改和自定义
KDDockWidgets源码编译及安装qml dockwidget窗口停靠QML + KDDockWidget 实现 tabwidget效果( 窗口可独立浮动和缩放)今天主要记录一些在KDDockWidget源码中的修改,修改源码的目的是为了根据自己的项目来实现相关风格,KDDockWidget是第三方开源代码, 不是Qt官方的,提供的可修改的接口不一定非常完善,而且部分功能还会有bug。总之,要想实现自有风格的样式,原有接口不满足的情况下,就得去改源码了。
2023-01-17 16:21:45
1461
原创 qml 类似移动端时间设置控件
qml实现一个类似手机端闹钟或其它时间设置控件。可以用ListView实现其效果,但是QML提供有现成的控件可以用,所以要实现这个效果更方便。先看效果图本文Demo下载。
2023-01-07 13:01:20
1469
原创 Qt6 qtmqtt编译及演示示例(附带动态库)
随着物联网的不断发展,如今很多项目都需要接入,而两年前也是因为项目需要,了解了一些关于mqtt的用法,并将其过程记录成几篇博客,近一年多时间陆陆续续有好多人私信咨询关于mqtt相关的问题,其中又有很多是关于最基础的源码编译相关的。我之前刚接触的时候还没有Qt6,那时候我的编译环境是,下载代码后直接qmake编译,编译过程也很顺利,基本没遇到什么困难,一路畅通。
2022-12-16 13:12:02
5585
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
2306
7
原创 Qt+opencv 鼠标画线实现几何图形识别并动态创建
使用Qt + OpenCV实现,通过鼠标画线绘制几何图形,然后通过opencv进行图形轮廓识别,返回图形顶点,然后创建对应的几何图形添加到场景中。绘制使用QGraphics体系完成。看效果图:本文demo在这里点击下载环境: Qt5.15.2 + vs2019 64bit支持图形:直线、圆、椭圆、矩形、三角形。快捷键:数字3 清屏demo的功能实现流程如下:在临时画线层绘制,然后将绘制的图形保存成一张临时图片,再将其传给opencv进行轮廓检测,返回轮廓点后再计算出轮廓顶点坐标,将坐标交给Qt层动态
2022-12-04 11:59:23
2612
原创 QML ListView实现TabBar标签拖拽交换位置效果
QML中TabBar要实现标签移动效果比较麻烦,不像QTabBar控件那样可以设置属性后就能移动,虽然在父类Container中提供了moveItem接口,但是要实现拖拽交换的视觉效果还是没那么容易。本demo使用QML的ListView来实现该功能,并动态切换对应的page内容。demo提供了动态添加页、删除页、移动交换标签位置功能。1.点击顶部“Add Panel”按钮,可以动态添加tab标签及对应的页面,名称相对应;2.按住标签左右拖拽可交换标签位置;
2022-11-25 16:30:39
1280
1
原创 QML Shape实现任意圆角Rectangle矩形
QML中有时候需要实现一些特殊定制化页面,比如不同的圆角矩形,如果直接用Rectangle控件定义radius圆角属性,会将四个角统一设置成一样的圆角,但是如果仅仅只想实现两个圆角效果,另外两个直角,或者圆角的弧度不同,这时候就不能直接用现有的Rectangle去做了,有两种方法, 一种是直接用Canvas进行绘制,一种是通过Shape组件来实现。两种方法均可,区别是前者稍微复杂一点,代码量会多一些,后者相对简单点,而且便于封装,多处使用。
2022-10-22 17:37:01
2806
原创 解决Qt程序桌面图标有锯齿的问题
Qt开发windows桌面程序,经常会看到应用程序图标有锯齿或者不清晰的情况,其实原因就是设置的桌面图标(.ico)是固定尺寸的,大尺寸图标缩小后会有锯齿,小尺寸图标放大后又模糊,而桌面图标会根据用户的设置显示大图标或者小图标格式,所以如果设置一张固定尺寸的logo就会出现这种现象。
2022-09-28 16:05:35
1502
原创 QML ListView model动态切换
应粉丝的请求,想做一个列表控件,点击item的时候右侧列表项动态切换,效果如下:他的设想是点击左边列表item的时候右边切换页面,这样做其实也可以,但是没必要搞这么复杂,直接就用两个列表来实现就可以了, 右边列表动态切换model就可以更新数据。抽半小时实现了一个简单样式。经常会收到一些粉丝的私信,我会尽量回复,有空的情况下可以帮忙一起解决问题,相互学习。...
2022-08-05 15:56:56
1317
1
原创 Qt实现一个简易截图工具(支持缩放、移动、保存、复制到粘贴板)
windows平台,使用QtWidget实现一个简易截图工具,支持选区角落拖动缩放、选区移动,支持保存,复制到粘贴板,支持快捷键调出截图、退出截图。暂不支持对截图进行编辑操作,以及鼠标移动到程序窗口可以自动识别,后去有需求可以加上。先看效果选区后会弹出三个按钮,从左到右分别是退出、保存到文件、复制到粘贴板。如果选择复制到粘贴板,就可以直接在其他地方进行粘贴截图。当鼠标在选区上下左右四个角落按下后会出现操作选区,此时拖动鼠标可以改变选区大小。选区左上角可以实时显示选区的尺寸。快捷键操作。.........
2022-08-01 11:40:12
1470
原创 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
5299
原创 win11系统搭建FTP服务器超详细流程
之前写过Qt开发FTP文件上传下载功能,那么,如果本地需要测试FTP功能的话就需要搭建一个本地FTP服务器,可以方便快速调试。所以今天主要详细介绍如何在windows 11系统中快速搭建一个本地的FTP服务器,该配置也适用于其他windows版本。打开运行窗口【win+R】快捷键,输入 后点击确定:在弹窗中找到 Internet信息服务,并打开勾选以下配置 点击确定首先 我们在本地创建一个FTP服务器根目录文件夹 FtpServer (名字自定义)然后查看本机IP地址打开运行【win+R】窗口输
2022-06-19 17:30:44
18382
10
QML Combobox 自动过滤,输入字符串后自动匹配
2025-04-03
Qt6 QML实现Windows屏幕录制成视频
2025-03-20
QT QML实现音频波形图进度条
2025-03-18
Qt5.15.2 Linux ARM架构源码编译安装(UOS20国产系统)已编译好的包
2025-03-17
Windows Qt动态监测系统分辨率及缩放比变化,提供QWidget和QML项目的调用demo
2025-03-16
KDDockWidget源码修改及自定义
2025-03-16
C++ Qt实现视频帧提取功能
2025-03-15
Qt QML实现鼠标自由选择不规则区域进行截图
2025-03-14
QML实现文件十六进制显示Demo
2023-09-08
Qt QGraphics导入背景图并绘制图形,画布移动、缩放、图形旋转等
2023-06-30
QML模块及qmldir使用演示demo
2023-04-16
qml 类似移动端时间设置控件
2023-01-07
qtmqtt Qt6.2.4+VS2019 x64编译动态库及简单示例(附带Qt在线安装包+perl安装包)
2022-12-16
QML + KDDockWidget 实现 tabwidget 窗口可独立浮动和缩放
2022-12-05
Qt+opencv 鼠标绘制进行图形识别并进行item对象创建-Demo
2022-12-03
QML ListView实现TabBar标签拖拽移动位置效果
2022-11-25
QML 实现注册码输入控件,自动填入分隔符,粘贴内容格式化
2022-11-06
Qt实现桌面画线、标记,流畅绘制,支持鼠标和多点触控绘制
2022-10-26
Qt实现简易截图工具(支持缩放、移动、保存、复制到粘贴板)
2022-10-18
KDDockWidgets VS2019编译的动态库以及源码
2022-07-10
QFtp实现批量文件上传
2022-06-22
QML TableView Demo演示示例
2022-06-09
QtService 实现Qt后台服务程序
2022-06-07
Qt 反射机制实现,通过类名创建对象
2022-06-02
C++、C语言基础知识点强化,以及相关经典面试题、数据结构和算法知识及相关面试题汇总。
2022-05-24
Qt 实现钢笔画线效果,根据画线速度改变笔宽
2022-05-07
Qt 鼠标/触屏绘制平滑曲线(矢量/非矢量)
2022-05-06
Qt鼠标拖动绘制基本几何图形(直线、矩形、圆形、椭圆)
2022-05-06
KDDockWidgetTest.rar
2021-06-10
Qt Mqtt连接阿里云示例
2020-03-16
Qt MQTT简单示例Demo
2020-03-06
Qt 使用插件(Plugins)扩展应用程序简单示例Demo
2019-09-01
NSIS FindProc.dll+KillProcDLL.dll
2019-07-26
Qt Remote Object(QtRO)动态Replica实现进程间通信Demo
2019-06-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人