自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

luoyayun361的专栏

GitHub地址:github.com/luoyayun361

  • 博客(374)
  • 资源 (46)
  • 收藏
  • 关注

原创 Qt实现桌面画线、标记,流畅绘制,支持鼠标和多点触控绘制

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

2022-10-26 22:30:57 3857 2

原创 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 244

原创 Qt 实现钢笔画线效果详细原理

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

2020-02-16 13:08:58 3137 1

原创 Qt鼠标拖动绘制基本几何图形

用Qt鼠标事件实现基本几何图形的绘制,支持直线、矩形、圆形、椭圆。后期可以在此基础上进行扩展。本文Demo下载地址。

2019-06-27 18:58:08 11263 26

原创 Qt 鼠标/触屏绘制平滑曲线,支持矢量/非矢量方式

前言Qt通过鼠标或者触屏,实时绘制平滑曲线,通常有两种方式实现:矢量绘图和非矢量绘图,这两种画线方式从实现上有些不同,其原理也不太一样,稍后会做详细介绍。而鼠标或者触屏画线也不大一样,通常如果只实现鼠标画线的话,那么只需要重新实现鼠标事件即可(mousePressEvent、mouseMoveEvent、mouseReleaseEvent),而要在触控屏上画线,如果需要支持多点画线的话,就必须处......

2019-06-26 20:05:39 4683 17

原创 Qt读写CSV文件的几种方式及优劣

作为一种常见的数据交换格式,CSV(Comma Separated Values)文件常常用于数据导出和导入等场合。在实际开发中,我们也需要使用Qt来实现CSV文件的读写操作。本篇博客将介绍使用Qt实现CSV读写的方法,并分析每种实现方式的优缺点。使用QStringList及QTextStream实现CSV文件读写;使用QTextCodec及QByteArray实现CSV文件读写;使用QStandardItemModel实现CSV文件读写;

2023-04-22 16:18:12 759 1

原创 Qt关于QPainter绘制1px宽度图形带来的问题思考

前段时间遇到这样一个问题,使用QPainter绘制直线的时候,设置了笔宽为1像素,但是绘制出来的线条却是2px宽度,而且设置的画笔颜色很明显是降低了透明度,不是最“纯正”的颜色。当时就感觉非常奇怪,明明设置的画笔宽度是正常的,为啥绘制出来不是自己想要的样子。而且,当画笔宽度设置为2px后,发现结果又是正常的,透明度也是正常。后来一句句的代码排查问题才发现了其中的猫腻。

2023-04-16 21:58:39 383

原创 QML自定义模块及qmldir的使用

在开发QtQuick项目中,当项目文件很多的情况下,可能会分成多级文件夹来进行分类,还有一些通用类型文件,如公共组件,通用配置等等,需要在各个不同的文件中进行调用,这种情况下,一种方式是在当前需要引用的文件中通过关键字import加上相对路径,从而找到通用文件目录。另一种方式就是将通用文件目录设置成qml模块形式,通过import直接引入模块名称就可以直接调用相关qml了,这样的好处是在任何不同的目录中都可以随处导入模块,而不用考虑相对路径的问题。

2023-04-16 13:44:52 201

原创 C++11 tuple元组基本用法

元组tuple是C++11的一个新特性,它是一个固定大小的不同类型值的集合,是泛化的std::pair。也可以当作一个通用的结构体来用,不需要创建结构体又获取结构体的特征,在某些情况下可以取代结构体,使程序更简洁、直观。tuple可以说是一个既简单又复杂的类型,简单的一面是很容易使用,复杂的是它内部隐藏了很多细节,往往要和模板元的一些技巧结合起来使用。

2023-04-11 10:10:17 816

转载 图解 C++ 对象模型,看这一篇就够了!

《深度探索C++对象模型》这本书对对象模型的描述如下:语言中直接支持面向对象程序设计的部分,包括了构造函数、析构函数、多态、虚函数等等。对象模型的底层实现机制并未标准化,不同编译器有一定的自由来设计对象模型的实现细节。在我看来,对象模型研究的是对象在存储上的空间和时间上的更优,并对C++面向对象技术加以支持,如以虚指针、虚表机制支持多态特性。C++中虚函数的作用主要是为了实现多态机制。多态,简单来说,是指在继承层次中,父类的指针可以具有多种形态—当它指向某个子类对象时,通过它能够调用到子类的函数,而非父类的

2023-02-02 21:45:00 333

原创 关于KDDockWidget源码修改和自定义

KDDockWidgets源码编译及安装qml dockwidget窗口停靠QML + KDDockWidget 实现 tabwidget效果( 窗口可独立浮动和缩放)今天主要记录一些在KDDockWidget源码中的修改,修改源码的目的是为了根据自己的项目来实现相关风格,KDDockWidget是第三方开源代码, 不是Qt官方的,提供的可修改的接口不一定非常完善,而且部分功能还会有bug。总之,要想实现自有风格的样式,原有接口不满足的情况下,就得去改源码了。

2023-01-17 16:21:45 713

原创 qml 类似移动端时间设置控件

qml实现一个类似手机端闹钟或其它时间设置控件。可以用ListView实现其效果,但是QML提供有现成的控件可以用,所以要实现这个效果更方便。先看效果图本文Demo下载。

2023-01-07 13:01:20 316

原创 Qt6 qtmqtt编译及演示示例(附带动态库)

随着物联网的不断发展,如今很多项目都需要接入,而两年前也是因为项目需要,了解了一些关于mqtt的用法,并将其过程记录成几篇博客,近一年多时间陆陆续续有好多人私信咨询关于mqtt相关的问题,其中又有很多是关于最基础的源码编译相关的。我之前刚接触的时候还没有Qt6,那时候我的编译环境是,下载代码后直接qmake编译,编译过程也很顺利,基本没遇到什么困难,一路畅通。

2022-12-16 13:12:02 1609 6

原创 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 959

原创 Qt+opencv 鼠标画线实现几何图形识别并动态创建

使用Qt + OpenCV实现,通过鼠标画线绘制几何图形,然后通过opencv进行图形轮廓识别,返回图形顶点,然后创建对应的几何图形添加到场景中。绘制使用QGraphics体系完成。看效果图:本文demo在这里点击下载环境: Qt5.15.2 + vs2019 64bit支持图形:直线、圆、椭圆、矩形、三角形。快捷键:数字3 清屏demo的功能实现流程如下:在临时画线层绘制,然后将绘制的图形保存成一张临时图片,再将其传给opencv进行轮廓检测,返回轮廓点后再计算出轮廓顶点坐标,将坐标交给Qt层动态

2022-12-04 11:59:23 1246

原创 QML ListView实现TabBar标签拖拽交换位置效果

QML中TabBar要实现标签移动效果比较麻烦,不像QTabBar控件那样可以设置属性后就能移动,虽然在父类Container中提供了moveItem接口,但是要实现拖拽交换的视觉效果还是没那么容易。本demo使用QML的ListView来实现该功能,并动态切换对应的page内容。demo提供了动态添加页、删除页、移动交换标签位置功能。1.点击顶部“Add Panel”按钮,可以动态添加tab标签及对应的页面,名称相对应;2.按住标签左右拖拽可交换标签位置;

2022-11-25 16:30:39 390

原创 QML TextField实现注册码输入控件,自动填入分隔符,粘贴内容格式化

首先来看一下office的授权,产品密钥输入方式当键盘随意输入字母会自动转成大写状态,然后每个五个字符会自动填入分隔符“-”,并且不能手动输入分隔符或者其他特殊字符。然后还有一项 特殊功能,如果是拷贝一串内容直接粘贴进去,会自动进行格式化,比如输入然后就自动格式化成如下:看图:ok,接下里分享使用QML来实现此效果。本文Demo下载在这里先来看看实现效果:代码实现:限制只能输入数字和字母,由于还要自动输入分隔符,所以还要加上“-”但是要限制用户手动输入分隔符,所以需要监控键盘事件,限制分

2022-11-06 11:36:31 389

原创 QML Shape实现任意圆角Rectangle矩形

QML中有时候需要实现一些特殊定制化页面,比如不同的圆角矩形,如果直接用Rectangle控件定义radius圆角属性,会将四个角统一设置成一样的圆角,但是如果仅仅只想实现两个圆角效果,另外两个直角,或者圆角的弧度不同,这时候就不能直接用现有的Rectangle去做了,有两种方法, 一种是直接用Canvas进行绘制,一种是通过Shape组件来实现。两种方法均可,区别是前者稍微复杂一点,代码量会多一些,后者相对简单点,而且便于封装,多处使用。

2022-10-22 17:37:01 1015

原创 解决Qt程序桌面图标有锯齿的问题

Qt开发windows桌面程序,经常会看到应用程序图标有锯齿或者不清晰的情况,其实原因就是设置的桌面图标(.ico)是固定尺寸的,大尺寸图标缩小后会有锯齿,小尺寸图标放大后又模糊,而桌面图标会根据用户的设置显示大图标或者小图标格式,所以如果设置一张固定尺寸的logo就会出现这种现象。

2022-09-28 16:05:35 592

原创 QML ListView model动态切换

应粉丝的请求,想做一个列表控件,点击item的时候右侧列表项动态切换,效果如下:他的设想是点击左边列表item的时候右边切换页面,这样做其实也可以,但是没必要搞这么复杂,直接就用两个列表来实现就可以了, 右边列表动态切换model就可以更新数据。抽半小时实现了一个简单样式。经常会收到一些粉丝的私信,我会尽量回复,有空的情况下可以帮忙一起解决问题,相互学习。...

2022-08-05 15:56:56 668 1

原创 Qt实现一个简易截图工具(支持缩放、移动、保存、复制到粘贴板)

windows平台,使用QtWidget实现一个简易截图工具,支持选区角落拖动缩放、选区移动,支持保存,复制到粘贴板,支持快捷键调出截图、退出截图。暂不支持对截图进行编辑操作,以及鼠标移动到程序窗口可以自动识别,后去有需求可以加上。先看效果选区后会弹出三个按钮,从左到右分别是退出、保存到文件、复制到粘贴板。如果选择复制到粘贴板,就可以直接在其他地方进行粘贴截图。当鼠标在选区上下左右四个角落按下后会出现操作选区,此时拖动鼠标可以改变选区大小。选区左上角可以实时显示选区的尺寸。快捷键操作。.........

2022-08-01 11:40:12 953

原创 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 3118

原创 win11系统搭建FTP服务器超详细流程

之前写过Qt开发FTP文件上传下载功能,那么,如果本地需要测试FTP功能的话就需要搭建一个本地FTP服务器,可以方便快速调试。所以今天主要详细介绍如何在windows 11系统中快速搭建一个本地的FTP服务器,该配置也适用于其他windows版本。打开运行窗口【win+R】快捷键,输入 后点击确定:在弹窗中找到 Internet信息服务,并打开勾选以下配置 点击确定首先 我们在本地创建一个FTP服务器根目录文件夹 FtpServer (名字自定义)然后查看本机IP地址打开运行【win+R】窗口输

2022-06-19 17:30:44 12273 7

原创 Qt 反射机制实现,通过类名创建对象

首先说一下什么是反射:再简单一点说,就是可以通过类名称来创建一个类对象,这在Java和Object-C中是原生支持的,所以实现起来非常简单,但是C++就不支持了,如果想要用到反射机制,那就得自己实现。文中Demo下载在计算机编程语言中,反射机制可以用来:性能:反射可以理解成是一种解释操作,这个过程总是要慢于直接调用的。当然,性能问题的程度是可以控制的,如果程序在很少涉及的地方使用,性能将不会是一个问题。适用于性能不敏感的部分。反射模糊了程序内部实际发生的事情,会比直接代码更加复杂。增加了理解代码的难度。

2022-06-02 11:57:31 1285 1

原创 C++单例类宏定义,方便快速实现单例类

前言之前已经写过两篇博客关于单例类的写法:Qt C++单例类写法C++设计模式–单例模式(Singleton)及单例通用模板今天再加个菜,通过宏定义,用更简单的方式来实现单例类。使用非常方便。正文话不多说,直接上代码,定义一个头文件,singleton.h#pragma once/* * @brief :定义单例类宏 */#include <mutex>#define DISABLE_COPY(Class) \ Class(const Class&am

2022-05-13 17:53:06 1001 1

原创 Qt windows打开资源管理器并高亮文件

一段简单代码分享,Qt windows 平台下,通过文件路径,打开资源管理器并高亮选中文件。

2022-05-07 15:03:47 608

原创 Qt Linux获取bios ID作为唯一标识

Qt linux下获取设备唯一标识符,可以使用bios ID,通过QProcess来执行linux命令从而获取。

2022-05-07 14:56:48 1127

原创 C++11:搞清楚万能引用和右值引用

前言我们通过一个问题来进入今天的话题:1.形如 “type&&” 的结构,就是右值引用吗?2.以下哪些属于右值引用?① void fun(Widget && param);② Widget && var1= Widget();③ auto && var2 = var1;④ template<typename T> void f(std::vector<T>&& param);⑤ temp

2022-03-23 22:00:16 1570

原创 C++11:lambda表达式详细介绍

前言Lambda(匿名函数)表达式是C++11最重要的特性之一,lambda来源于函数式编程的概念,也是现代编程语言的一个特点。优点如下:声明式编程风格:就地匿名定义目标函数或函数对象,有更好的可读性和可维护性。简洁:不需要额外写一个命名函数或函数对象,,避免了代码膨胀和功能分散。更加灵活:在需要的时间和地点实现功能闭包。概念及基本用法lambda表达式定义了一个匿名函数,并且可以捕获一定范围内的变量。语法形式如下:[ capture ] ( params ) opt -> ret

2022-03-15 12:43:53 9500 2

原创 C++11:继承构造函数

前言首先我们来看一种情况,有如下示例:class Base{public: Base(int i):x(i),y(0){} Base(int i,double j):x(i),y(j){} Base(int i,double j,const string & str):x(i),y(j),s(str){}private: int x; double y; string s;};class Derived : Base{};i

2022-03-13 16:41:22 2747

原创 C++11:委托构造函数

前言如果一个类中重载了多个构造函数,并且在每个构造函数中都需要对某些变量进行初始化,这时候就会出现很多重复的代码,在C++11之前存在这个问题。而C++11中新增的委托构造函数,就是为了解决这个问题,它允许在同一个类中一个构造函数可以调用另外一个构造函数,从而可以在初始化时简化变量的初始化。委托构造函数我们先来看一个老版本的写法示例:class ClassA{public: ClassA(){} ClassA(int max){ m_max = max >

2022-03-13 15:21:33 1663

原创 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 4293 3

原创 最简单的方式实现QML无边框窗口边缘拖动调整大小

前言使用Qt在开发桌面程序时,通常会去除默认的程序边框,从而实现自定义的标题栏。然而当设置窗口属性为Qt.FramelessWindowHint后,窗口的拖动,以及在边缘拖动缩放的功能就没有了,在以前的Qt版本中,就需要自己写很多繁琐代码来实现这些功能,尽管Qt为此也提供了一个类 QSizeGrip,但是它仅仅只能在窗口角落进行调整,在窗口上下左右边缘是不行的。庆幸的是,在Qt5.15中官方在QWindow中提供了两个新的方法:startSystemMove和startSystemResize。这些方法

2022-02-11 18:03:44 3564

原创 QML TableView表格使用示例

前言QML中实现表格可以使用多种方式,比如直接使用ListView,定义每一行delegate,或者自定义Rectangle,放到Flipable中组合使用。Qt Quick Control1中 从5.1版本开始就提供了表格控件,但是感觉不怎么好用,在Qt Quick Control2中 5.12版本开始又提供了一个专门用于做表格的控件TableView,相比于前面的方案,使用Tableview更加简单和直接。那么,接下来就看看Quick Control2 的TableView使用方法。正文我们直接针

2022-01-07 13:11:07 7149 2

原创 Windows Powershell的一些常规操作命令

Powershell先简单的了解一下Powershell是神马玩意儿。Windows PowerShell 是专为系统管理员设计的新 Windows 命令行 shell。Windows PowerShell 包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。与接受和返回文本的大多数 shell 不同,Windows PowerShell 是在 .NET Framework 公共语言运行时 (CLR) 和 .NET Framework 的基础上构建的,它接受和返回 .NET Framewor

2021-12-21 11:33:46 1485

原创 GitLab创建空仓库后拉取并上传文件遇到的系列问题

前言在GitLab上,管理员创建一个空的仓库,developer拉取空仓库后在本地的提交无法push到服务器的,有几个坑需要填一下。问题一如果你是developer角色的话,那么很遗憾,你拉去空仓库后在本地添加的一些文件,准备push 到服务器,发现无法push,git push origin master:master以上命令意思是将本地的master分支push到远程的master分支,如果远程没有该分支将会自动创建。报错如下: ! [remote rejected] master -

2021-12-15 14:49:51 1929

原创 解决Win10不能访问共享文件夹的问题

问题同一个局域网,别人的电脑能访问共享文件夹,但是自己电脑却不行。提示:你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问。解决方法,需要启用不安全的来宾登录方法。步骤按 win+R 组合键,打开运行,输入:gpedit.msc ,回车,可以快速打开本地组策略编辑器2.在本地组策略编辑器窗口中, 依次展开:计算器配置 - 管理模板 - 网络 - Lanman工作站3.双击打开“启用不安全的来宾登录”,设置“已启用”,点击确认即可接下来再次打开共享文件夹可以正常访

2021-12-03 14:27:05 4760

原创 C++11:内联命名空间,无缝升级库代码

前言想象这样一种场景:如果A代码库提供一个接口foo来完成一些工作,突然某天由于加入了新特性,需要升级接口,而有些用户喜欢新的特性但是并不愿意为了新接口去修改他们的代码,还有部分用户认为新接口影响了稳定性,想继续使用老接口。最直接的办法就是提供两个不同的接口函数来对应不同的版本,但是如果库中函数很多,则会出现大量需要修改的地方。那么为了解决这种特定场景的问题,C++提供了一个新的方式来实现,叫做:内联命名空间。命名空间如果开发一个大工程,必然会有很多人员参与,而且还会引入很多第三方库,这导致程序

2021-11-22 21:38:32 894 2

原创 qml 捕捉Alt+F4实现弹窗退出

前言总所周知,Alt+F4是系统快捷键,可以直接强制关闭当前活动的应用程序,那么,如果我们的程序退出的时候有弹窗确认,而系统在捕获到Alt+F4快捷键也需要弹窗确认该怎么做呢,今天来解决这个问题。正文首先,我们知道Alt+F4快捷键是可以直接关闭应用程序,在Qt应用中,如果要在响应该快捷键的时候在应用程序中弹窗,有两种思路,一种是直接抓取该快捷键,一种是直接响应快捷键后的关闭函数。如果是QWidget项目,抓取Alt+F4快捷键,有两种方式:响应nativeEvent事件去捕获,另一种是通过wind

2021-11-15 18:30:00 543

原创 关于C++ Qt项目实现最简单Http Server的踩坑记录

前言在开发Qt项目中,需要实现一个Http服务器功能,接收并处理客户端的http请求,Qt的发行版中并没有提供相应的类来处理,所以要实现该功能只能找其他开源项目了,本文主要记录我在收集相关资料过程中踩过的坑,希望能给需要的人提供一点帮助。qthttpserver前面说到,Qt官方在发行版中并没有提供相应的类来实现HTTP 服务端,但是Qt-lab中提供了一个qthttpserver,Github地址在这里,不知道基于什么原因Qt官方没有将其纳入正式的Qt发行版中,如果要使用qthttpserver的话

2021-10-30 17:54:37 2564 1

QML模块及qmldir使用演示demo

在开发QtQuick项目中,当项目文件很多的情况下,可能会分成多级文件夹来进行分类,还有一些通用类型文件,如公共组件,通用配置等等,需要在各个不同的文件中进行调用,这种情况下,一种方式是在当前需要引用的文件中通过关键字`import` 加上相对路径,从而找到通用文件目录。另一种方式就是将通用文件目录设置成qml模块形式,通过import直接引入模块名称就可以直接调用相关qml了,这样的好处是在任何不同的目录中都可以随处导入模块,而不用考虑相对路径的问题。 demo是QML模块及qmldir使用演示示例。

2023-04-16

qml 类似移动端时间设置控件

qml实现一个类似手机端闹钟或其它时间设置控件。可以用ListView实现其效果,但是QML提供有现成的控件可以用,所以要实现这个效果更方便。 博客地址:https://blog.csdn.net/luoyayun361

2023-01-07

qtmqtt Qt6.2.4+VS2019 x64编译动态库及简单示例(附带Qt在线安装包+perl安装包)

随着Qt6的发布,Qt官方开始推崇cmake编译,而qtmqtt对应的版本和Qt发布的版本一致的,所以qtmqtt从6.0发布以来,也开始默认用cmake编译。这样一来,很多之前习惯用Qt5的童鞋就有点摸不着头脑了,特别是一些刚入门的新手,看到Qt工程,习惯性的一上来就去找pro工程文件,但是Qt6的cmake工程是没有pro文件的,所以更是二脸懵逼。 资源包含了qt在线安装包软件和perl安装包。 demo下的mqtt目录可以直接拷贝到其他项目使用 博客介绍:https://luoyayun361.blog.csdn.net/article/details/128339682

2022-12-16

QML + KDDockWidget 实现 tabwidget 窗口可独立浮动和缩放

QML + KDDockWidget 实现 tabwidget 窗口可独立浮动和缩放效果 KDDockWidget是第三方开源项目,可以用于实现QML中Dock窗口效果,Qt本身不支持QML的Dock效果,所以正好弥补这部分空缺。而KDDockWidget中其实是支持Tab合并效果,但是在实际使用过程中遇到很多问题,该功能并不是很完善,所以索性自己使用QML来实现tabbar效果,然后结合KDDockWidget,可将每个tab页面进行单独的浮动和缩放。 本Demo使用环境 Qt5.15.2+VS2019 KDDockWidget动态库是在源码基础上做过部分修改后重新编译的。 博客地址: https://blog.csdn.net/luoyayun361

2022-12-05

Qt+opencv 鼠标绘制进行图形识别并进行item对象创建-Demo

使用Qt + OpenCV实现,通过鼠标绘制几何图形,然后通过opencv进行图形识别,然后创建对应的几何图形item项。绘制使用QGraphics体系完成。 支持图形:直线、圆、椭圆、矩形、三角形。 快捷键:数字3 清屏 本示例通过简单演示整个流程,若运用到实际项目中需要进一步优化。 博客:https://blog.csdn.net/luoyayun361

2022-12-03

QML ListView实现TabBar标签拖拽移动位置效果

QML中TabBar要实现标签移动效果比较麻烦,不像QTabBar控件那样可以设置属性后就能移动,虽然在父类Container中提供了moveItem接口,但是要实现拖拽交换的视觉效果还是没那么容易。 本demo使用QML的ListView来实现该功能,并动态切换对应的page内容。demo提供了动态添加页、删除页、移动交换标签位置功能。 详情见:https://blog.csdn.net/luoyayun361

2022-11-25

QML 实现注册码输入控件,自动填入分隔符,粘贴内容格式化

QML TextField实现注册码输入控件,自动填入分隔符,粘贴内容格式化。 类似office的授权,产品密钥输入方式。 博客: https://luoyayun361.blog.csdn.ne

2022-11-06

Qt实现桌面画线、标记,流畅绘制,支持鼠标和多点触控绘制

本示例是使用Qt QGraphics框架来实现桌面画线标记功能,绘制流畅,支持快捷键擦除、退出、缩放等功能。 博客:blog.csdn.net/luoyayun361

2022-10-26

Qt实现简易截图工具(支持缩放、移动、保存、复制到粘贴板)

使用Qt Widget实现一个简易截图工具,支持选区角落拖动缩放、选区移动,支持保存,复制到粘贴板,支持快捷键调出截图、退出截图。 详情参考博客: https://luoyayun361.blog.csdn.net/article/details/126097384

2022-10-18

KDDockWidgets VS2019编译的动态库以及源码

本dll及demo编译环境: vs2019+Qt5.15.2 64bit。 32bit不能用!!! dll分quick和QWidget版是不一样的,对应的include头文件也不一样,不能混用。 example目录下包含两个演示demo,每个demo下有个KDDockWidgets文件夹,可以在自己的项目中直接添加 KDDockWidgets.pri到自己的工程中即可使用。 博客说明:https://luoyayun361.blog.csdn.net/article/details/117533375

2022-07-10

Wininet.dll 32+64位库下载

Wininet.dll 32+64位库下载

2022-06-25

QFtp实现批量文件上传

示例包含了FTP登录,为方便演示,本次连接的FTP服务器就是上篇文章中介绍的在windows本机搭建的FTP服务器。Demo功能包括:选择文件夹进行批量上传文件,列举FTP服务器上的所有文件,以及文件实时上传进度 这几个重要功能。其实QFTP还提供了很多其他接口,用法都是差不多的,可以举一反三。

2022-06-22

QML TableView Demo演示示例

QML中实现表格可以使用多种方式,比如直接使用ListView,定义每一行delegate,或者自定义Rectangle,放到Flipable中组合使用。Qt Quick Control1中 从5.1版本开始就提供了表格控件,但是感觉不怎么好用,在Qt Quick Control2中 5.12版本开始又提供了一个专门用于做表格的控件TableView,相比于前面的方案,使用Tableview更加简单和直接。那么,接下来就看看Quick Control2 的TableView使用方法。 博客介绍:https://blog.csdn.net/luoyayun361/article/details/122361571

2022-06-09

QtService 实现Qt后台服务程序

QtService是一个用于实现windows服务或unix守护进程的开源项目,下载地址 本文使用QtService演示如何实现一个windows下的后台进程,可用于一些简单的windows服务程序中。 博客介绍:https://luoyayun361.blog.csdn.net/article/details/120655011?spm=1001.2014.3001.5502

2022-06-07

Qt 反射机制实现,通过类名创建对象

反射是指程序在运行时动态获取对象属性与方法的一种机制,即编译器需要将类型信息(属性类型与偏移地址以及成员函数的地址等信息)编译到程序文件中,当程序运行时将这些信息加载到内存中去,做到运行时只根据对象的地址或引用就可以获取到对象的类型信息,从而利用这些信息达到修改或重建对象的目标。 简单一点说,就是可以通过类名称来创建一个类对象,这在Java和Object-C中是原生支持的,所以实现起来非常简单,但是C++就不支持了,如果想要用到反射机制,那就得自己实现。

2022-06-02

C++、C语言基础知识点强化,以及相关经典面试题、数据结构和算法知识及相关面试题汇总。

C++、C语言基础知识点强化,以及相关经典面试题、数据结构和算法知识及相关面试题汇总。更多请参考:https://luoyayun361.blog.csdn.net/article/details/123289250?spm=1001.2014.3001.5502 https://luoyayun361.blog.csdn.net/article/details/105026257

2022-05-24

Qt 实现钢笔画线效果,根据画线速度改变笔宽

在Qt-WritingBoard基础上支持钢笔书写效果,会根据画线速度调整线条粗细。 快捷键控制: - 按键1:画线模式 - 按键2:擦除模式 - 按键3:清空画布 - 按键+:放大 - 按键-:缩小 博客介绍:https://luoyayun361.blog.csdn.net/article/details/104340258

2022-05-07

Qt 鼠标/触屏绘制平滑曲线(矢量/非矢量)

t通过鼠标或者触屏,实时绘制平滑曲线,通常有两种方式实现:矢量绘图和非矢量绘图,这两种画线方式从实现上有些不同,其原理也不太一样,稍后会做详细介绍。而鼠标或者触屏画线也不大一样,通常如果只实现鼠标画线的话,那么只需要重新实现鼠标事件即可(mousePressEvent、mouseMoveEvent、mouseReleaseEvent),而要在触控屏上画线,如果需要支持多点画线的话,就必须处理QTouchEvent事件才行,但是如果触屏上只支持单点画线,那也可以直接实现鼠标事件,因为第一个触点的事件会同时进入到QTouchEvent和Mouse事件中。QTouchEvent中可以区分出多点时每个触点的id,通过id进行区分每个点的数据。 原文链接:https://blog.csdn.net/luoyayun361/article/details/93650003

2022-05-06

Qt鼠标拖动绘制基本几何图形(直线、矩形、圆形、椭圆)

用Qt鼠标事件实现基本几何图形的绘制,支持直线、矩形、圆形、椭圆。后期可以在此基础上进行扩展。使用QGraphics完成。 本示例使用QGraphics体系来实现,因为要移动对象,所以生成的图形必须是一个单独的对象,鼠标拖动绘制的过程是在临时层中完成,release后生成一个矢量的图形item并添加到场景中。 博客地址:https://blog.csdn.net/luoyayun361/article/details/93890331

2022-05-06

QFtp-source.rar

QFtp源码文件,已经修改过编码问题,直接引用到自己项目中就可以使用,无需编译成动态库。

2021-09-09

WindowsInstallerCleanUp.rar

解决安装VMware提示"此产品安装程序不支持降级"

2021-06-23

KDDockWidgetTest.rar

qml实现Dockwidget窗口停靠功能,详细可见:https://luoyayun361.blog.csdn.net/article/details/117752657

2021-06-10

axure_chrome_extension_V0.6.3.rar

谷歌浏览器插件,用于打开Axure原型

2021-04-21

Qt Mqtt连接阿里云示例

本示例用于演示 如何用MQTT连接到阿里云IOT,本文主要介绍基于TCP的MQTT连接,客户端直连。详情参加博客 https://blog.csdn.net/luoyayun361

2020-03-16

Qt MQTT简单示例Demo

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种构建于TCP/IP协议的"轻量级"消息传输协议,它基于发布/订阅(publish/subscribe)模式,由IBM在1999年发布。对于需要较小代码占用空间或网络带宽有限的远程连接非常有用,是专为受限设备和低带宽、高延迟或不可靠的网络而设计。 https://blog.csdn.net/luoyayun361/article/details/104671603

2020-03-06

Qt 使用插件(Plugins)扩展应用程序简单示例Demo

插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。

2019-09-01

NSIS FindProc.dll+KillProcDLL.dll

NSIS打包时,如果有用到查找和杀死进程,所需的重要库,FindProc.dll和KillProcDLL.dll,附带拷贝说明

2019-07-26

Qt Remote Object(QtRO)动态Replica实现进程间通信Demo

博客地址:https://blog.csdn.net/luoyayun361/article/details/92205562

2019-06-15

Qt Remote Object(QtRO)进程间通信Demo

博客地址:https://blog.csdn.net/luoyayun361/article/details/91588654 Qt Remote Object简称QtRO,这是Qt5.9以后官方推出来的新模块,专门用于进程间通信(IPC)。在这之前,要实现进程间通信有多种方式,这里就不做介绍了,而Qt官方推出的这个新模块是基于Socket来封装的,使用起来非常方便,兼容LPC和RPC。LPC即Local Process Communication,而RPC是指Remote Process Communication,两者都属于IPC。QtRO能够工作于这两种不同的模式:如果用于LPC,则QtRO使用QLocalSocket;如果是用于RPC,则使用QTcpSocket。对于一个Qt开发者来说,如果项目中涉及到进程间通信,那么直接使用现成的模块进行开发, 莫过于是最好的选择,集成度高,代码量少。

2019-06-12

C++设计模式--观察者模式 demo

观察者模式,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

2019-04-14

Qt C++ 动态检测优盘插入或拔出

在开发文件浏览相关应用时,会涉及到动态检测优盘插入或拔出的状态,这样可以实时的刷新界面显示。这里通过调用windows的接口来实现该检测,代码很简单。我是在Qt工程中使用的,其核心代码是一样的。

2019-03-28

C++工厂方法模式框架

工厂方法模式是对简单工厂模式的进一步抽象和推广,而此模式的核心思想是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用以及方便后期维护拓展的目的。博客地址:https://blog.csdn.net/luoyayun361/article/details/88653986

2019-03-19

C++简单工厂模式框架 demo

C++实现简单工厂模式,这里是一个简单的 demo框架,可以通过该用例了解简单工厂模式的代码写法。

2019-03-18

Qt C++发送图片到QML显示

开发Qt应用时,想把QImage发送到QML端通过Image组件显示出来,这种场景主要用在例如在C++端调用android系统接口截图然后发送到QML端显示,或者C++端QWidget截图然后让QML界面中显示。要想实现该功能,需要用到一个重要的类QQuickImageProvider,这是专门从C++端提供图片到QML显示的。

2019-02-25

QML 中使用 C++定义的枚举类型

如果要在 QML使用 C++中定义的类型,有些数据类型是是可以直接使用的,如常见的 int,但是还有一些相对特殊的类型就需要做些特定的操作才可以使用了。 博客地址:https://blog.csdn.net/luoyayun361/article/details/85922756

2019-01-06

QML ListView实现树形二级列表(类似 android ExpandableListView控件)

QML 中没有直接提供类似 android 的ExpandableListView二级列表控件,treeView,但是用 treeView 实在是有些不方便,并且达不到想要的效果,所以干脆用 ListView 来扩展一个。

2018-08-11

Qt for Android 启动页 splash 延时显示

网上有很多介绍都是关于 Android 原生开发上关于启动页的配置说明,大体思路都是自己创建一个启动页面,然后定定时器延时显示,几乎很少看到用 Qt 开发Android如何配置,对于一个并不太熟悉 Android原生开发者以及刚接触用 Qt 跨平台开发者来说无疑是一个比较难的问题,在研究过很多 Android 原生配置以及 Qt 的官方文档后终于找到了最简单的解决方案。

2018-08-11

QML实现阴影字体效果

用 QML 实现阴影字体,详情见https://blog.csdn.net/luoyayun361/article/details/80687430

2018-06-14

QML 调用 C++ 分组属性

QML 调用 C++分组属性,博客地址:https://mp.csdn.net/mdeditor/80504389

2018-05-30

QML 调用 C++列表类型的属性

QML 调用 C++列表类型属性,博客地址:https://blog.csdn.net/luoyayun361/article/details/80474891

2018-05-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除