自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 资源 (16)
  • 收藏
  • 关注

原创 DelagteUI-DelAvatar 头像组件

DelAvatar 是 DelegateUI 框架中用于展示用户身份标识的核心组件,支持图标、文本、图片三种表现形式,遵循 Ant Design 交互规范,提供灵活的可定制化能力。本文档将详细介绍其使用方法及最佳实践。

2025-03-11 19:19:45 260

原创 「 DelegateUI 」Ant-d 风格的 Qt Qml UI 套件

「 DelegateUI 」 基于 Qml 的 Ant-d UI 套件。

2025-03-11 18:54:55 963

原创 Qml 中的那些坑(八)---openUrlExternally 在 Linux 和 Windows 平台的不一致行为

在使用 Qml 的函数时,开发者可能会遇到在 Linux 和 Windows 平台之间行为不一致的问题,尤其是在处理文件 URL 时。本文将深入探讨这一问题的成因及解决方案。很多时候,我们在开发跨平台应用时,需要理解平台之间的差异。总的来说,优先考虑使用这样的函数,来处理本地文件的 URL 转换,避免手动拼接带来的麻烦。

2025-01-15 19:13:20 351

原创 Qml 中实现时间轴组件

时间轴组件是现代用户界面中常见的元素,用于按时间顺序展示事件。本文将介绍如何使用 Qml 实现一个灵活且可定制的时间轴组件,并探讨其设计思路和实现细节。支持自定义节点样式:可以设置节点的图标、背景颜色、边框颜色等。支持自定义线条样式:可以设置线条的颜色和宽度。支持自定义时间显示格式:可以设置时间的显示格式和字体样式。支持自定义内容样式:可以设置内容的背景颜色、边框颜色、字体样式等。支持正序和倒序排列:可以根据时间戳对事件进行正序或倒序排列。节点样式。线条样式。时间样式。内容样式。

2025-01-15 18:08:02 519

原创 Qml 中实现任意角为圆角的矩形

在 Qml 中,矩形(Rectangle)是最常用的元素之一。然而,标准的矩形元素仅允许设置统一的圆角半径。在实际开发中,我们经常需要更灵活的圆角设置,例如只对某些角进行圆角处理,或者设置不同角的圆角半径。本文将介绍如何通过自定义 Qml 元素实现一个任意角可为圆角的矩形。我们将创建一个名为的自定义 Qml 元素,它继承自,并重写其paint()方法来自定义绘制逻辑。通过自定义 Qml 元素,我们实现了对矩形圆角的更灵活控制,使其能够满足更多实际开发需求。

2025-01-15 18:00:00 419

原创 Qml 中实现毛玻璃效果

毛玻璃效果(Acrylic Effect)是一种常见的 UI 设计风格,它通过模糊背景并添加透明度和噪声效果,使界面元素看起来像是半透明的磨砂玻璃。本文将介绍如何使用 Qml 实现这种效果,并提供一个完整的示例代码。

2024-12-31 18:06:00 806

原创 Qml 中实现水印工具

通过使用,我们可以在 Qml 中实现了一个功能丰富的水印工具。这个工具允许我们自定义水印的外观和行为,并且可以很方便地在 Qml 中使用。最后:项目链接(多多star呀…

2024-12-29 17:49:12 310

原创 Qt 中实现系统主题感知

在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观。Qt 作为一个跨平台的C++图形用户界面应用程序开发框架,提供了丰富的工具和类来实现这一功能。通过类,我们可以在 Qt 应用程序中实现系统主题感知功能。这个类封装了读取系统设置、更新主题颜色和颜色方案以及发出通知的逻辑,使得我们可以轻松地根据系统主题变化来调整应用程序的外观。此外,通过条件编译和平台特定的实现,还确保了跨平台的兼容性。

2024-12-28 17:46:39 1226

原创 Qt / Qt Quick程序打包的一些坑 (四)

如果我们的 Qml 中使用了【Qt Shapes】模块,那么在打包的时候,会缺少Qt5QuickShapes.dll。然后,还需要复制【Qt/Version/Kit/qml/QtQuick/Shapes】整个文件夹(注意根据自己使用的编译套件来选择目录)。

2024-11-12 19:38:11 500 17

原创 Qml 中的那些坑(七)---ComboBox嵌入Popup时,滚动内容超过其可见区域不会关闭ComboBox弹窗

最近在写信息提交的窗口时发现一个奇怪的 BUG:可以看到,当 ComboBox 嵌入 Popup 时,点开 ComboBox,然后滚动内容超过其可见区域并不会关闭 ComboBox 弹窗,并且会超出其父 Popup 范围。

2024-11-11 18:25:28 303

原创 CMake 生成器表达式介绍

生成器表达式在构建系统生成期间进行评估,以生成特定于每个构建配置的信息。它们的形式为$。

2024-10-28 22:10:19 993

原创 CMake 生成器表达式---条件表达式和逻辑运算符

CMake 的生成器表达式用于在构建系统级别上进行条件判断和逻辑运算,它们通常用在目标属性和生成器表达式上下文中。这些表达式允许你根据不同的平台、配置或编译器来定制构建过程。

2024-10-28 21:08:32 890

原创 在代码的星河中航行

程序员们得以停下脚步,回望那些由字符编织的日日夜夜。今天,我想借此机会,分享我的编程之旅,一段从懵懂无知到逐渐领悟,再到热爱深沉的心路历程。

2024-10-24 23:34:16 191

原创 CMake 属性之目录属性

CMake 的目录属性是指在特定目录(及其子目录)范围内有效的设置。这些属性不同于全局变量或目标(Target)属性,它们提供了一种机制,允许开发者为项目中的不同部分定义不同的构建行为。通过目录属性,你可以指定编译器选项、包含路径、预处理定义等,而无需在每个目标或文件中重复这些设置。

2024-10-09 23:23:56 1112

原创 CMake 属性之全局属性

【写在前面】CMake 的全局属性是指在 CMake 配置过程中,对整个项目范围生效的设置。这些属性不同于目标 ( Target ) 属性或目录 ( Directory ) 属性,后者仅对特定的目标或目录生效。

2024-10-09 09:00:00 718

原创 哪个编程工具让你的工作效率翻倍?

编程工具:Visual Studio Code (VS Code)功能特点Visual Studio Code (VS Code) 是一款由微软开发的开源代码编辑器,支持多种编程语言,包括但不限于JavaScript、Python、C++、Java等。它以其强大的扩展性、轻量级和高效的开发体验而闻名。扩展性:VS Code 拥有庞大的扩展市场,开发者可以安装各种插件来增强编辑器的功能,如代码格式化、自动补全、Linting(代码检查)、调试工具等。集成终端。

2024-10-08 23:46:08 851

原创 CMake 属性之目标属性

CMake 可以通过属性来存储信息。它就像是一个变量,但它被附加到一些其他的实体上,像是一个目录或者是一个目标。一个全局的属性可以是一个有用的非缓存的全局变量。在 CMake 的众多属性中,目标属性 () 扮演着尤为重要的角色,它们直接关联到最终生成的可执行文件、库文件等构建产物。更直观一点,如果把目标类比为,那么目标属性则类似。

2024-10-08 18:49:40 978

原创 Qml 实现星级评分组件

在现代应用程序中,星级评分是一个常见的用户界面元素,它允许用户对产品、服务或内容进行评价。想必大家在用各种带有评分的软件中看到过这个组件:本文将指导你如何使用Qml创建一个简单而美观的星级评分组件,并且支持高度自定义。

2024-09-10 18:01:13 852

原创 Qml 实现水波进度动画条

水波效果最重点的就是水波,其实这个水波就是个障眼法罢了,画张图你们就明白了。其实它就是一个圆角正方形,一直在旋转和上升下降,让用户有一种水波的视觉感~当然,我们还需要将多余的部分裁剪掉,因此这里需要借助。至于进度条和文字就非常简单,直接看源码即可。学习了一下实现思路,觉得很有意思。,有一些小技巧,分享给大家~

2024-09-10 18:01:06 958

原创 Qml 中如何实现私有属性?

在一般编程中,实现私有属性是一种常见的封装实践,它有几个重要目的和好处。 然而,在 QML 中,由于它是一种面向组件编程,并不能像传统的面向对象编程语言那样直接支持私有属性。因此,本篇通过使用一些特殊技巧,也能在 Qml 中实现私有属性。

2024-08-22 23:40:56 469

原创 Qml 实现仿前端的 Notification (悬浮出现页面上的通知消息)

在前端中这一般称为 Notification 或 Message,但本质是一种东西,即:悬浮弹出式的消息提醒框。这种组件一般具有以下特点:1、全局/局部显示:它不依赖于具体的页面元素,可以在整个页面的任意位置显示。2、自动消失:默认情况下,消息会在一定时间后自动消失,也可以设置为不自动消失。3、多种类型:支持多种类型的消息,如成功(Success)、警告(Warning)、错误(Error)和 消息(Message)等。4、可配置:可以自定义消息的显示位置、持续时间、内容等。然鹅 Qml 中并未

2024-08-22 18:04:05 1412

原创 Qt 中实现异步散列器

虽然QCryptographicHash 很优秀,但它最大的问题在于其散列值的计算是同步的( 即阻塞),对小数据来说并没什么影响,但对大数据来说则意味明显卡顿。因此,我将QCryptographicHash 进行简单封装,扩展了实用性的同时并将计算改为异步,还增加了进度通知和结束通知。

2024-08-12 18:42:38 1244

原创 Qt 哈希加密之 QCryptographicHash

哈希函数是一种单向函数,它可以接收一个输入(或称为消息),然后返回一个固定大小的输出,这个输出就是哈希值。确定性:相同的输入总是产生相同的输出。快速计算:计算哈希值的速度非常快。抗篡改性:即使输入数据发生微小的变化,输出的哈希值也会发生显著变化。雪崩效应:输入的微小变化会导致输出的显著变化。难以逆向:从哈希值几乎不可能逆推出原始输入。

2024-08-12 18:41:26 1111

原创 如何利用AI提高内容生产效率?

AI可以通过自然语言处理(NLP)技术来生成文章和博客。这些系统可以分析大量的文本数据,学习特定的写作风格和结构,然后自动生成内容。例如,一些新闻机构已经使用AI来撰写财经报告和体育赛事的摘要。

2024-05-18 21:16:46 780 1

原创 Qml 实现瀑布流布局

最近在刷掘金的时候看到一篇关于瀑布流布局的文章,然鹅他们的实现都是前端的那套,就想着 Qml 有没有类似实现。结果百度了一圈也没有( T_T Qml 凉了凉了 ),于是,我按照自己理解,简单实现了一个 Qml 版的瀑布流布局。瀑布流布局(Waterfall Layout),也被称为瀑布式布局或多栏自适应布局,是一种网页布局技术,它允许内容以多列的形式显示,类似于瀑布一样从上到下流动。这种布局方式特别适合于展示图片或卡片式内容,如图片库、新闻摘要、商品列表等。

2024-05-18 20:55:15 1364

原创 2023年图灵奖揭晓,你怎么看?

他的工作推动了交互证明系统的发展,并为理解计算问题的复杂性提供了新的工具和方法。他的工作揭示了随机性在解决复杂计算问题时的重要性,并为设计高效的算法提供了重要的启示。他的研究探索了伪随机性的性质、生成方法以及在计算中的应用,为利用伪随机性解决计算问题提供了新的思路和方法。综上所述,Avi Wigderson 的学术生涯和领导力对理论计算机科学领域产生了长远影响,他的贡献为学科的发展提供了重要的理论基础和方法,同时推动了学术社区的壮大和发展。他的领导力推动了学术社区的发展和壮大,促进了学术交流和合作。

2024-04-16 18:37:33 761

原创 提升性能:QML Canvas 绘图优化技巧

优化QML Canvas绘图性能是确保应用程序流畅运行的关键一环。通过采用上述技巧和策略,你可以提升绘图性能,改善用户体验,并确保应用程序在各种设备上都能够高效运行。只有不断地优化和调整绘图代码,结合性能分析工具的使用,才能使你的应用在绘图方面达到最佳状态。

2024-04-16 18:19:27 1489

原创 Qt 6.5 中 QML 模块的新功能

尽管QML模块已经存在很长时间了,它们的使用在 Qt6 之前相当稀少。在 Qt6 中,它们变得更加普遍。并且有充分的理由:只有将所有相关的 QML 放在一个模块中,才能使qmllint或Qt Quick 编译器等工具正常工作。但是,到目前为止,Qt 自己的 API 的某些部分还不知道 module。与 QML 类型相互作用时,例如通过,您需要使用明确的文件路径。从 Qt 6.5 开始,现在有一个替代解决方案来利用模块,我们将在此博客文章中介绍。

2024-04-14 23:55:53 1931

原创 Qml 中的那些坑(六)---对象被错误删除,看不见的垃圾回收

在 Qml 中,很多时候我们需要动态创建一些​​​​​​​ Qml 对象,通常是:createComponent + createObject 或createQmlObject。然而,最近工作中却出现了一个相当难以察觉的问题,花了很多时间才定位到关键位置。其根本原因在于:未给动态创建的对象分配 parent ( 即:没有任何对象持有其引用 ),结果就是,当 Qml 引擎运行垃圾回收时,这些对象会被错误清除掉。

2024-04-14 16:28:43 664 2

原创 聊聊主流开源协议

开源协议确保开发者能够保留对其原创作品的某些基本权利。例如,它们可以帮助开发者保留版权,确保他们的作品得到适当的认可,并防止他人未经许可地使用、修改或分发软件。这为开发者提供了一定程度的控制权和安全感,鼓励他们分享自己的工作成果。开源协议不仅保护开发者,也为使用者提供了明确的权利和义务。使用者可以根据协议的规定自由地使用、复制、修改和分发软件,但同时也需要遵守协议中的条款。这种透明度有助于减少法律纠纷,确保使用者在合法的范围内使用软件。

2024-04-11 21:25:44 1425

原创 QT6 中的隐式导入与 QML 模块解析

在 QML6 开发中,每个 QML 文档都默认具有隐式导入。这意味着我们可以在同一目录下使用其他 QML 文档,而无需显式导入。这大大减少了编写冗余代码的工作量。通常,我们不需要为QML文件所属的模块进行导入。然而,如果隐式导入不能识别文件所属的模块,这一功能的价值就会大打折扣。虽然理论上这种情况不应该发生,但由于 Cmake API 的限制,我们不能完全排除这种可能性。

2024-04-10 23:43:05 582

原创 AI技术创业有哪些机会?

随着技术的进步和市场的发展,未来还会有更多新的创业机会出现。对于创业者来说,关键是要紧跟技术趋势,了解市场需求,找到自己的定位和优势,提供有竞争力的产品和服务。同时,创业者还需要具备持续学习和创新的能力,以应对快速变化的市场环境。

2024-04-10 18:35:50 825

原创 Qt 实现的万能采集库( 屏幕/相机/扬声器/麦克风采集)

之前应公司需要,给公司写过一整套直播的库( 推拉流,编解码),类似于 libobs。结果后来因为没有相关项目,便停止开发&维护了。不过里面很多有用的组件,然后也挺好用的,遂开源出来一部分。因此,本篇就简单讲一下用法。

2024-04-01 19:56:05 1916

原创 全球首位AI程序员诞生,将会对程序员的影响有多大?

近期,全球首位AI程序员Devin的出场,不禁让我想到了一个有趣的问题:AI程序员会不会抢程序员的饭碗呢?先别着急下结论!虽然AI技术在编程领域越来越广泛,但它真的能完全替代我们程序员吗?AI程序员的优势分析AI 程序员 Devin 的出现标志着编程自动化和智能化迈上了新的台阶。相较于传统的人工程序员,AI 程序员 Devin 具有显著的优势:提高开发效率:AI程序员可以进行24/7不间断工作,无需休息,大大缩短了开发周期。

2024-04-01 15:46:03 347

原创 程序员35岁会失业吗?

程序员在35岁时是否会失业,并不是一个确定性事件,而是由多种因素共同决定的。这个话题反映了IT行业技术更新速度快、竞争激烈的特点,但同时也揭示了经验和技能积累的重要性。首先,技术更新与个人适应性方面,虽然IT行业技术进步迅速,但如果程序员能保持持续学习的习惯,积极跟进行业发展趋势,不断提升和完善自身的技术栈,就不会因年龄增长而丧失竞争力。事实上,经验丰富的程序员在项目管理、系统架构、复杂问题解决等方面具备独特优势,他们的价值并不会因为年龄而减少。

2024-03-30 18:12:43 1335

原创 Qt 实现 Asterix 报文解析库

最近工作中需要解析 Cat 21 和 Cat 62 的 ADS-B 数据 ( 自己的工作包含航空领域 )。然后,因为整个 Asterix 协议类别非常之多,每个类别的版本也多,纯手工实现每个版本解析根本不现实 ( 然鹅公司之前的解析库就是这么做的且做的太烂 )。于是花了很多时间去寻找一个好用的解析库,比如 Wireshark 的 Asterix 解析部分 ( 可惜因为是插件,有点难移出来 )。最后找了很久( Asterix 好像应用比较局限,资料实在太少

2024-03-16 17:22:49 2196

原创 Qt / Qml 视频硬解码(CUDA)中如何实现无上传硬渲染(一)

很多时候,我们在对视频的解码和渲染的处理都要经过以下步骤: ◦ 软解码,视频帧位于内存。 ▪ 软渲染,需要拷贝到图像然后渲染;硬渲染则需要上传纹理,然后渲染。 ◦ 硬解码,视频帧位于显存。 ▪ 软渲染,需要下载到内存,然后拷贝到图像再渲染;硬渲染则直接拷贝到纹理,然后渲染。 然而,对于超高分辨率( 4K 8K )而言,上传下载带来的的性能损失太大了( CPU瓶颈 ),为了实现更流畅的体验和更低的资源占用,应当考虑更好的方案。

2023-01-09 16:13:07 2924

原创 Qt6 中如何使用 qsb

Qt 6 以后,对于 Qt Quick 不再直接使用各个图形 API 的着色器语言,而是使用一种 .qsb 的文件,这个文件由 qsb.exe 工具生成,它包含了各个图形 API 使用的字节码。通过使用 qsb,我们便可以自由切换硬件渲染后端而无需写多个平台的着色器代码。另一方面,.qsb 文件主要由 Qt Scene Graph 和 Qt3D 使用,当然,Qml 中相关的组件也同样使用,例如:ShaderEffect。因此,本篇使用前一篇的圣诞树作

2023-01-03 08:00:00 3284 3

原创 Qml 中用 Shader 实现圣诞树旋转灯

2022年圣诞节到来啦,很高兴这次我们又能一起度过~这次给大家带来一个简单漂亮圣诞树灯。当然了,本篇文章主要是讲解一下如何在 Qml 中使用GLSL来实现自己的特效。至于代码嘛,我比较喜欢在Shaderjoy上寻找,那里有很多超级炫酷的着色器实现的特效,并且可以很轻松的集成到 Qml 中。

2022-12-24 19:17:52 3303

原创 Qt / Qml 中捕获(中文)输入法事件(按下 & 提交)

最近工作中遇到一个奇怪的问题:本来想在TextEdit(QTextEdit) 中捕获一下键盘按键按下的事件。然而,当输入法为英文时( 正常输入字符 ),可以捕获到按键事件,但当我切换到中文时,弹出输入法选框后,却无法再像英文那样捕获到事件。

2022-12-14 12:43:38 3667 2

Qml 实现星级评分组件

在现代应用程序中,星级评分是一个常见的用户界面元素,它允许用户对产品、服务或内容进行评价。 想必大家在用各种带有评分的软件中看到过这个组件: 该资源使用Qml创建一个简单而美观的星级评分组件,并且支持高度自定义。

2024-09-10

Qml 实现水波进度动画条

​水波效果最重点的就是水波,其实这个水波就是个障眼法罢了,画张图你们就明白了。 其实它就是一个圆角正方形,一直在旋转和上升下降,让用户有一种水波的视觉感~ 当然,我们还需要将多余的部分裁剪掉,因此这里需要借助 OpacityMask: OpacityMask 原理是将 Source 对应 MaskSource 中的透明部分掩盖掉。 但我们不能直接透出 Source 部分 ( 蓝色圆角矩形 ),需要将它先下移,然后裁剪得到: 接着,使用一个圆形作为 MaskSource 即可裁剪出下面的形状: 最后,让蓝色圆角矩形无限旋转即可:

2024-09-09

Qml 实现仿前端的 Notification (悬浮出现页面上的通知消息)

在前端中这一般称为 Notification 或 Message,但本质是一种东西,即:悬浮弹出式的消息提醒框。 这种组件一般具有以下特点: 1、全局/局部显示:它不依赖于具体的页面元素,可以在整个页面的任意位置显示。 2、自动消失:默认情况下,消息会在一定时间后自动消失,也可以设置为不自动消失。 3、多种类型:支持多种类型的消息,如成功(Success)、警告(Warning)、错误(Error)和 消息(Message)等。 4、可配置:可以自定义消息的显示位置、持续时间、内容等。 然鹅 Qml 中并未提供类似的组件,因此我便仿照前端实现了出来,并且更加简单易用。

2024-08-22

基于 QCryptographicHash 封装的异步散列器

虽然 QCryptographicHash 很优秀,但它最大的问题在于其散列值的计算是同步的( 即阻塞 ),对小数据来说并没什么影响,但对大数据来说则意味明显卡顿。 因此,我将 QCryptographicHash 进行简单封装,扩展了实用性的同时并将计算改为异步,还增加了进度通知和结束通知。

2024-08-12

Python爬虫开发实战教程PDF完整全套教学课件

第1章 静态网页爬虫 第2章 常见反爬措施及解决方案 第3章 自己动手编写一个简单的 第4章 Scrapy 架应用 第5章 爬虫数据分析及可视化

2024-04-08

Qt 实现的万能采集库( 屏幕/相机/扬声器/麦克风采集)

AnyCapture AnyCapture 是一个基于 Qt 的回调式采集库。 它简化了各类采集实现(包装),提供相当方便的接口,旨在能够轻松集成以实现采集相关工作。 轻松采集屏幕, ScreenCapture 提供多种采集模式(GDI/DX9/DXGI),AnyCapture 默认将自动选择。 轻松采集相机, CameraCapture 使用 Qt Multimedia 完成采集工作。 轻松采集音频输入&输出, AudioCapture 使用 WASAPI(Windows)。 最多支持采集1个屏幕&1个相机&1个音频输入&1个音频输出, 然而可简单实例多个(无需担心资源占用)实现多路采集。

2024-04-01

Qt 实现 Asterix 报文解析库

        最近工作中需要解析 Cat 21 和 Cat 62 的 ADS-B 数据 ( 自己的工作包含航空领域 )。         然后,因为整个 Asterix 协议类别非常之多,每个类别的版本也多,纯手工实现每个版本解析根本不现实 ( 然鹅公司之前的解析库就是这么做的且做的太烂 )。         于是花了很多时间去寻找一个好用的解析库,比如 Wireshark 的 Asterix 解析部分 ( 可惜因为是插件,有点难移出来 )。         最后找了很久( Asterix 好像应用比较局限,资料实在太少 ),终于找到一个实现相当良好的工具:AsterixInspector 。         基于该工具,我将核心部分移植出来并进行简化,最终实现 :Asterix数据报文解析库。

2024-03-16

Qml 中用 Shader 实现圣诞树旋转灯

圣诞节到来啦,很高兴这次我们又能一起度过~ 这次给大家带来一个简单漂亮圣诞树灯。 当然了,本篇文章主要是讲解一下如何在 Qml 中使用 GLSL 来实现自己的特效。 至于代码嘛,我比较喜欢在 Shaderjoy 上寻找,那里有很多超级炫酷的着色器实现的特效,并且可以很轻松的集成到 Qml 中。

2022-12-24

Qt / Qml 中捕获(中文)输入法事件(按下 & 提交)

最近工作中遇到一个奇怪的问题: 本来想在 TextEdit ( QTextEdit ) 中捕获一下键盘按键按下的事件。 然而,当输入法为英文时( 正常输入字符 ),可以捕获到按键事件,但当我切换到中文时,弹出输入法选框后,却无法再像英文那样捕获到事件。 经过查阅资料,发现在使用输入法时,不会发出按键事件,而是另外一种不太常见的事件类型:QEvent::InputMethod ,与之关联的事件为:QInputMethodEvent 。 为了正确处理这类事件,我简单封装了一个辅助类,效果相当不错。

2022-12-14

Qt 中捕获三方库&自身标准打印方法

很多时候,我们为了方便调试,常常需要加入一些打印。         例如 Qt 中的 QDebug,C 和 C++ 中的 printf / cout 等等,又或者是三方库提供的标准打印接口。         然而大部分时候,这些打印相当不统一(格式和位置),并且因为 Qt 作为 GUI 框架,调试信息实在不应该直接置于 UI 之上。         因此,需要一种能统一和标准化所有标准打印的方法( 所谓标准打印即标准输出 stdout ),并且能够动态配置。

2022-11-20

纯 Qml 实现仿画图3D的颜色选择器(更强更易用)

        在做编辑相关的应用经常会用到颜色选择器。         实际上, Qt Widgets 时代使用 QColorDialog 或者 Qml 中 ColorDialog 即可完成一般的颜色选择的需求。         然鹅现在都 Windows 11了!!还在用那么拉跨的东西,实在是看不下去了。         然后自己一直很喜欢用 Windows 画图3D的那个颜色选择器,因此我决定仿照实现一个,并且还为它增加了一个透明度。

2022-11-13

Qml 计算实际帧率(FPS)的方法

        在 Qml 中,任何可视化的项的显示 ( 渲染 ) 都依赖一个根 QQuickWindow,它们包含了底层的场景图渲染器。         因此,如果我们想要在 Qml 中获取 FPS,则只需在窗口渲染场景图时记录帧数并计算帧率即可。         不过,需要注意的是:GUI 程序一般不会频繁刷新,并不建议使用循环 update() 来计算 ( 可行但并非最佳 )。

2022-07-05

MouseArea 的 Click / Hover 事件穿透

1、MouseArea 的 Click / Press / Release 事件穿透一般方法; 2、MouseArea 的 Hover 事件穿透以及所有鼠标事件穿透的终极解决方法;

2021-04-16

Qml中实现对原始视频图像格式(YUV / RGB)支持

1、QML 中的 VideoOutput: source; 2、如何使用 YUV 数据创建 QVideoFrame;  3、在 VideoOutput 上呈现视频帧;

2021-04-11

Qt 中实现任意阶贝塞尔曲线绘制 & 动态调节

Qt 中有相当方便的绘制接口 ( 由 QPainter 提供 ) 。 例如贝塞尔曲线的 API: QPainterPath 的 quadTo() 和 cubicTo() 然后使用 QPainter::drawPath()。 然而,美中不足的是,Qt 的贝塞尔曲线只支持二次和三次,对于更高阶的似乎就无能为力了。 即便多个 quadTo() 或 cubicTo() 连用的效果也非常不理想。 因此,我想到利用贝塞尔的公式生成曲线点,然后用直线来连接,即可实现「 N阶贝塞尔曲线绘制 」。

2021-04-04

Qml实现简易版Qt Linguist(语言家)

1、Qt语言家(Qml版)。 2、提供更加简洁/清晰/实用的UI (自我感觉良好Ծ‸ Ծ)。 3、极易上手,so,可以给翻译人员使用。

2020-06-30

Qt / Qml 中支持多国语言

- 在 Qt Widgets 中实现多语言动态翻译。 - 在 Qml 中实现多语言动态翻译。 - 两个子项目,方便测试 & 学习。

2020-05-25

Qt / Qml 实现历史编辑器 ( 支持历史搜索 & 关键字匹配 )

1、类似于搜索引擎的那种关键字排序。 2、并不是做搜索,而是对历史输入记录的一个匹配 + 排序。 3、高亮关键字。

2020-03-19

Qml中实现多视图,多图像源(QImage / QPixmap)

1、QML 中支持 QImage / QPixmap 。 2、QML 中实现多视图。 3、QML 中实现多图像源视图。

2020-01-30

FFmpeg全字幕解码

1、ass等格式外挂字幕解码。 2、ass等格式内封字幕解码。 3、sub+idx格式内封字幕解码。 4、同步视频和字幕。

2019-10-06

FFmpeg过滤图,以及如何使用字幕过滤器

1、FFmpeg过滤图基础。。 2、如何使用FFmpeg Filter添加字幕。。

2019-09-25

理解PCM音频数据,使用QAudioOutput播放音频的两种方法

1、如何手动生成一份PCM数据。 2、使用 QAudioOutput 播放PCM的方法( 两种 )。

2019-09-20

QML中动态创建组件(同步/异步)的方法

在QML中想要动态创建组件,一般有两种方法: 1、使用Loader。 2、使用JavaScript:Qt.createComponent() / Qt.createQmlObject()。

2019-08-11

Qt制作的远程控制(屏幕控制)

尝试做一个用于远程控制的简单工具, 一般为局域网环境下使用(热点), 使用两种协议 [可选TCP/UDP(默认)], 使用两种截屏方式 [可选D3D/GDI(默认,且Qt自带)]

2019-08-08

Qt Quick制作的文件传输器

使用Qt Quick制作的一款传输文件的工具。 一般用于局域网。 其中,扫描使用UDP,传输使用TCP,

2019-04-22

QML实现的天气预报

一个用于天气预报的软件 使用百度天气api获取数据 可以查看未来三天的天气,以及温度趋势图 已经适配android平台,获取位置信息需打开定位服务

2018-09-10

Qt使用tcp实现的简单服务端和客户端(带心跳检测)

Qt使用tcp实现的简单服务端和客户端(带心跳检测)。。很基础的实现,大概适合对Qt tcpsever 不太清楚的人看。。

2018-04-13

空空如也

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

TA关注的人

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