QML实现文件十六进制显示Demo
在QML项目中实现一个显示文件十六进制数据展示的demo,可直接引入项目使用。
支持高亮某段数据,快速定位,头部底部对齐,主题切换,截图保存,切换展示宽度等功能。在开源代码的基础上进行扩展,并移植到QML中进行使用。
博客主页:https://blog.csdn.net/luoyayun361
Qt QGraphics导入背景图并绘制图形,画布移动、缩放、图形旋转等
使用Qt QGraphic实现一个应用场景,直接导入背景图,并在背景画布上绘制几何图形,包括矩形、圆形等,支持画布整体移动、放大和缩小,画布恢复,图形item选中、移动、旋转。item移动 会实时显示全局坐标以及相对于背景画布的坐标。本Demo提供基本功能实现,便于在此基础上进行扩展。
博客主页:https://blog.csdn.net/luoyayun361
QML模块及qmldir使用演示demo
在开发QtQuick项目中,当项目文件很多的情况下,可能会分成多级文件夹来进行分类,还有一些通用类型文件,如公共组件,通用配置等等,需要在各个不同的文件中进行调用,这种情况下,一种方式是在当前需要引用的文件中通过关键字`import` 加上相对路径,从而找到通用文件目录。另一种方式就是将通用文件目录设置成qml模块形式,通过import直接引入模块名称就可以直接调用相关qml了,这样的好处是在任何不同的目录中都可以随处导入模块,而不用考虑相对路径的问题。
demo是QML模块及qmldir使用演示示例。
qml 类似移动端时间设置控件
qml实现一个类似手机端闹钟或其它时间设置控件。可以用ListView实现其效果,但是QML提供有现成的控件可以用,所以要实现这个效果更方便。
博客地址:https://blog.csdn.net/luoyayun361
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
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
Qt+opencv 鼠标绘制进行图形识别并进行item对象创建-Demo
使用Qt + OpenCV实现,通过鼠标绘制几何图形,然后通过opencv进行图形识别,然后创建对应的几何图形item项。绘制使用QGraphics体系完成。
支持图形:直线、圆、椭圆、矩形、三角形。
快捷键:数字3 清屏
本示例通过简单演示整个流程,若运用到实际项目中需要进一步优化。
博客:https://blog.csdn.net/luoyayun361
QML ListView实现TabBar标签拖拽移动位置效果
QML中TabBar要实现标签移动效果比较麻烦,不像QTabBar控件那样可以设置属性后就能移动,虽然在父类Container中提供了moveItem接口,但是要实现拖拽交换的视觉效果还是没那么容易。
本demo使用QML的ListView来实现该功能,并动态切换对应的page内容。demo提供了动态添加页、删除页、移动交换标签位置功能。
详情见:https://blog.csdn.net/luoyayun361
QML 实现注册码输入控件,自动填入分隔符,粘贴内容格式化
QML TextField实现注册码输入控件,自动填入分隔符,粘贴内容格式化。
类似office的授权,产品密钥输入方式。
博客: https://luoyayun361.blog.csdn.ne
Qt实现桌面画线、标记,流畅绘制,支持鼠标和多点触控绘制
本示例是使用Qt QGraphics框架来实现桌面画线标记功能,绘制流畅,支持快捷键擦除、退出、缩放等功能。
博客:blog.csdn.net/luoyayun361
Qt实现简易截图工具(支持缩放、移动、保存、复制到粘贴板)
使用Qt Widget实现一个简易截图工具,支持选区角落拖动缩放、选区移动,支持保存,复制到粘贴板,支持快捷键调出截图、退出截图。
详情参考博客: https://luoyayun361.blog.csdn.net/article/details/126097384
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
Wininet.dll 32+64位库下载
Wininet.dll 32+64位库下载
QFtp实现批量文件上传
示例包含了FTP登录,为方便演示,本次连接的FTP服务器就是上篇文章中介绍的在windows本机搭建的FTP服务器。Demo功能包括:选择文件夹进行批量上传文件,列举FTP服务器上的所有文件,以及文件实时上传进度 这几个重要功能。其实QFTP还提供了很多其他接口,用法都是差不多的,可以举一反三。
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
QtService 实现Qt后台服务程序
QtService是一个用于实现windows服务或unix守护进程的开源项目,下载地址
本文使用QtService演示如何实现一个windows下的后台进程,可用于一些简单的windows服务程序中。
博客介绍:https://luoyayun361.blog.csdn.net/article/details/120655011?spm=1001.2014.3001.5502
Qt 反射机制实现,通过类名创建对象
反射是指程序在运行时动态获取对象属性与方法的一种机制,即编译器需要将类型信息(属性类型与偏移地址以及成员函数的地址等信息)编译到程序文件中,当程序运行时将这些信息加载到内存中去,做到运行时只根据对象的地址或引用就可以获取到对象的类型信息,从而利用这些信息达到修改或重建对象的目标。
简单一点说,就是可以通过类名称来创建一个类对象,这在Java和Object-C中是原生支持的,所以实现起来非常简单,但是C++就不支持了,如果想要用到反射机制,那就得自己实现。
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
Qt 实现钢笔画线效果,根据画线速度改变笔宽
在Qt-WritingBoard基础上支持钢笔书写效果,会根据画线速度调整线条粗细。
快捷键控制:
- 按键1:画线模式
- 按键2:擦除模式
- 按键3:清空画布
- 按键+:放大
- 按键-:缩小
博客介绍:https://luoyayun361.blog.csdn.net/article/details/104340258
Qt 鼠标/触屏绘制平滑曲线(矢量/非矢量)
t通过鼠标或者触屏,实时绘制平滑曲线,通常有两种方式实现:矢量绘图和非矢量绘图,这两种画线方式从实现上有些不同,其原理也不太一样,稍后会做详细介绍。而鼠标或者触屏画线也不大一样,通常如果只实现鼠标画线的话,那么只需要重新实现鼠标事件即可(mousePressEvent、mouseMoveEvent、mouseReleaseEvent),而要在触控屏上画线,如果需要支持多点画线的话,就必须处理QTouchEvent事件才行,但是如果触屏上只支持单点画线,那也可以直接实现鼠标事件,因为第一个触点的事件会同时进入到QTouchEvent和Mouse事件中。QTouchEvent中可以区分出多点时每个触点的id,通过id进行区分每个点的数据。
原文链接:https://blog.csdn.net/luoyayun361/article/details/93650003
Qt鼠标拖动绘制基本几何图形(直线、矩形、圆形、椭圆)
用Qt鼠标事件实现基本几何图形的绘制,支持直线、矩形、圆形、椭圆。后期可以在此基础上进行扩展。使用QGraphics完成。
本示例使用QGraphics体系来实现,因为要移动对象,所以生成的图形必须是一个单独的对象,鼠标拖动绘制的过程是在临时层中完成,release后生成一个矢量的图形item并添加到场景中。
博客地址:https://blog.csdn.net/luoyayun361/article/details/93890331
QFtp-source.rar
QFtp源码文件,已经修改过编码问题,直接引用到自己项目中就可以使用,无需编译成动态库。
WindowsInstallerCleanUp.rar
解决安装VMware提示"此产品安装程序不支持降级"
KDDockWidgetTest.rar
qml实现Dockwidget窗口停靠功能,详细可见:https://luoyayun361.blog.csdn.net/article/details/117752657
Qt Mqtt连接阿里云示例
本示例用于演示 如何用MQTT连接到阿里云IOT,本文主要介绍基于TCP的MQTT连接,客户端直连。详情参加博客 https://blog.csdn.net/luoyayun361
Qt MQTT简单示例Demo
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种构建于TCP/IP协议的"轻量级"消息传输协议,它基于发布/订阅(publish/subscribe)模式,由IBM在1999年发布。对于需要较小代码占用空间或网络带宽有限的远程连接非常有用,是专为受限设备和低带宽、高延迟或不可靠的网络而设计。
https://blog.csdn.net/luoyayun361/article/details/104671603
Qt 使用插件(Plugins)扩展应用程序简单示例Demo
插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。
NSIS FindProc.dll+KillProcDLL.dll
NSIS打包时,如果有用到查找和杀死进程,所需的重要库,FindProc.dll和KillProcDLL.dll,附带拷贝说明
Qt Remote Object(QtRO)动态Replica实现进程间通信Demo
博客地址:https://blog.csdn.net/luoyayun361/article/details/92205562
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开发者来说,如果项目中涉及到进程间通信,那么直接使用现成的模块进行开发, 莫过于是最好的选择,集成度高,代码量少。
C++设计模式--观察者模式 demo
观察者模式,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
Qt C++ 动态检测优盘插入或拔出
在开发文件浏览相关应用时,会涉及到动态检测优盘插入或拔出的状态,这样可以实时的刷新界面显示。这里通过调用windows的接口来实现该检测,代码很简单。我是在Qt工程中使用的,其核心代码是一样的。
C++工厂方法模式框架
工厂方法模式是对简单工厂模式的进一步抽象和推广,而此模式的核心思想是封装类中不变的部分,提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用以及方便后期维护拓展的目的。博客地址:https://blog.csdn.net/luoyayun361/article/details/88653986
C++简单工厂模式框架 demo
C++实现简单工厂模式,这里是一个简单的 demo框架,可以通过该用例了解简单工厂模式的代码写法。
Qt C++发送图片到QML显示
开发Qt应用时,想把QImage发送到QML端通过Image组件显示出来,这种场景主要用在例如在C++端调用android系统接口截图然后发送到QML端显示,或者C++端QWidget截图然后让QML界面中显示。要想实现该功能,需要用到一个重要的类QQuickImageProvider,这是专门从C++端提供图片到QML显示的。
QML 中使用 C++定义的枚举类型
如果要在 QML使用 C++中定义的类型,有些数据类型是是可以直接使用的,如常见的 int,但是还有一些相对特殊的类型就需要做些特定的操作才可以使用了。
博客地址:https://blog.csdn.net/luoyayun361/article/details/85922756
QML ListView实现树形二级列表(类似 android ExpandableListView控件)
QML 中没有直接提供类似 android 的ExpandableListView二级列表控件,treeView,但是用 treeView 实在是有些不方便,并且达不到想要的效果,所以干脆用 ListView 来扩展一个。
Qt for Android 启动页 splash 延时显示
网上有很多介绍都是关于 Android 原生开发上关于启动页的配置说明,大体思路都是自己创建一个启动页面,然后定定时器延时显示,几乎很少看到用 Qt 开发Android如何配置,对于一个并不太熟悉 Android原生开发者以及刚接触用 Qt 跨平台开发者来说无疑是一个比较难的问题,在研究过很多 Android 原生配置以及 Qt 的官方文档后终于找到了最简单的解决方案。
QML实现阴影字体效果
用 QML 实现阴影字体,详情见https://blog.csdn.net/luoyayun361/article/details/80687430