自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(151)
  • 收藏
  • 关注

原创 PyQtGraph应用(五):k线回放复盘功能实现

本文介绍了基于PyQtGraph实现k线回放复盘功能的方法。通过控制k线数据的绘制范围,实现了类似TradingView和AICoin的k线播放、暂停、前进、后退功能。文章对比了国内外行情软件的k线回放功能,并展示了自定义实现的预览效果。代码在原有IndicatorsViewWidget基础上扩展,通过处理不同时间周期的数据索引,实现了日期匹配和周期切换逻辑。核心包括初始化动画参数、处理日期匹配、更新图表等步骤,最终实现了完整的k线回放复盘功能。

2026-01-30 14:18:20 886 1

原创 PyQtGraph应用(四):基于PyQtGraph的K线指标图绘制

本文介绍了使用PyQtGraph实现K线指标图的方法。通过对比主流股票软件(如同花顺、东方财富)的K线图效果,作者展示了自行实现的K线图功能,包括指标切换和参数设置。文章详细说明了实现原理,通过继承基类BaseIndicatorWidget来绘制K线及各类技术指标图表(如MACD、KDJ等)。核心代码展示了如何初始化绘图组件、设置图表属性、添加十字线等功能,为开发类似股票行情分析工具提供了实用参考。

2026-01-29 10:31:38 1079

原创 PyQtGraph应用(三):自定义多图表图形绘制

本文介绍了如何使用PyQtGraph实现多图表交互式图形绘制。通过自定义MultipleChartWidget类,构建包含主图表和底部图表的布局,并配置了十字线、坐标轴标签等交互元素。文章详细展示了如何设置图表样式、添加十字线指示器、坐标轴标签等交互功能,最终实现两个图表间的联动效果。代码示例清晰展示了PyQtGraph在多图表场景下的应用方法,为数据可视化开发提供了实用参考。

2026-01-29 10:29:05 389

原创 PyQtGraph应用(二):自定义图表图形绘制

通过前面的常用的级别图表绘制文章中的示例可以发现,默认的x轴坐标刻度值为连续性的序列值,其实PyQtGraph是支持用户自定义坐标轴的。这里实现一个自定义x轴坐标为日期坐标的示例。自定义坐标轴图表的核心就是自己实现PlotWidget内部的AxisItem。"""重写此方法来自定义日期显示格式为'YYYY-MM-DD'"""# 关键修复:将浮点数转换为整数timestamp_ms = int(value * 1000) # 转换为整数毫秒。

2026-01-27 09:57:54 946

原创 PyQtGraph应用(一):常用图表图形绘制

本文介绍了使用PyQtGraph绘制常见图表的方法,通过工厂模式创建了一个图表生成器类ChartGenerator。该类提供了静态方法用于绘制折线图、散点图、柱状图、面积图和直方图,每种图表类型都支持自定义标题、坐标轴标签、颜色、大小等参数。实现逻辑清晰,封装了PyQtGraph的核心绘图功能,方便快速生成各种常见可视化图表。代码示例展示了如何使用该工厂类创建不同类型的图表,并设置了相关样式参数。

2026-01-27 09:54:03 434

原创 PyQtGraph中的PlotWidget详解

PyQtGraph PlotWidget摘要 PyQtGraph的PlotWidget是一个功能强大的图表控件,专为PyQt/PySide应用程序设计。核心特点包括: 开箱即用:集成坐标轴、标题、图例等完整图表组件 高效性能:特别适合大数据量或实时数据可视化 灵活定制:支持背景、网格、线条样式等深度配置 主要功能: 通过plot()方法快速绘制曲线/散点图 支持坐标轴标签、标题、网格线设置 提供抗锯齿、交互缩放等特性 内置图例和多种数据标记样式 典型应用场景包括科学数据可视化、实时监控系统等需要高性能绘图的

2026-01-23 16:45:07 951

原创 快速了解PyQtGraph中的重要概念及核心类

本文介绍了PyQtGraph数据可视化库的核心概念和关键类。主要内容包括:1) 核心类表格汇总,涵盖容器窗口、绘图项、场景视图和实用工具;2) 核心概念解读,如Qt图形视图框架、坐标系统、信号槽机制和性能优化;3) 类关系图和常见任务示例,展示如何绘制实时曲线图、创建多子图仪表盘和处理图像交互。文章建议通过运行官方示例、修改参数和查阅文档来深入学习PyQtGraph。

2026-01-23 09:59:48 937

原创 深入理解PyQtGraph核心组件交互

本文深入解析PyQtGraph基于Qt Graphics View Framework的核心组件:GraphicsView(视图)、GraphicsScene(场景)和GraphicsItem(图元)。通过类比观察窗口、舞台画布和演员道具,详细阐述了各组件职责与特性,并演示了它们协同工作的基本流程。文章强调理解这一底层架构对实现自定义可视化、性能优化和问题排查的重要性,为开发者掌握PyQtGraph提供了理论基础和实践指导。

2026-01-22 10:42:25 644

原创 PyQtGraph简介

PyQtGraph是一个基于PyQt/PySide和NumPy的高性能Python图形库,专为科学计算和工程应用设计。它具有实时数据可视化能力强、交互功能丰富等特点,支持2D/3D绘图、图像处理及动态数据更新。安装简单,可轻松集成到GUI应用中。相比Matplotlib更适合实时数据处理和交互式应用,而相比VisPy则更注重易用性。PyQtGraph在性能与交互性之间取得了良好平衡,是开发科学计算和实时监控应用的理想选择。

2026-01-22 10:40:37 992

原创 不要再把我的文章设置成VIP可读了!!!

逛CSDN的时候最讨厌的就是看到VIP可读的文章,在此分享的目的就是免费分享,当然现在新增了一个目的就是投喂AI,所以不要不要再把我的文章设置成VIP可读了!

2026-01-21 16:56:37 127

原创 qmldir 文件详解:自动化与模块化最佳实践

qmldir 文件自动化与模块化最佳实践摘要 qmldir 文件是 QML 模块系统的核心配置文件,本文系统介绍了其创建管理策略、模块化架构设计和企业级实践方案。主要内容包括: 自动化管理:对比手动/自动/混合三种创建方式,提供 Python 生成脚本和 Git 钩子示例,实现自动化更新 模块化架构:详细解析单模块与多级模块结构,展示企业级模块划分方案和版本控制策略 高级语法:完整说明 qmldir 语法规范,包含模块声明、依赖管理、单例模式等关键元素 工程实践:提出自动化工作流、多环境管理、安全校验等企业

2026-01-21 16:53:19 388

原创 QQmlEngine 深度解析

QQmlEngine核心架构与应用摘要 QQmlEngine是Qt QML模块的核心引擎,负责管理QML应用的整个生命周期。它提供四大核心功能:1) 创建初始化引擎并配置基础路径;2) 上下文管理系统支持全局和局部变量;3) 类型注册系统支持自定义组件和单例;4) 组件加载机制支持静态和动态创建。高级应用包括网络资源定制、动态图片生成、内存管理优化和JavaScript扩展。企业级应用可采用微前端架构、混合渲染管道和安全沙箱系统。QQmlEngine通过完善的API和扩展机制,为QML应用开发提供强大支持。

2025-09-12 14:16:52 650

原创 QMLContext详解

QML上下文详解 QML上下文是QML应用程序的核心执行环境,主要特点包括: 上下文层级:形成树状结构,包含对象实例、属性、函数和作用域关系 关键属性: 全局Qt对象提供版本和平台信息 parent属性实现父子对象访问 id属性允许同级对象引用 作用域规则: 组件内部形成独立作用域 子对象可访问父对象属性 JavaScript块继承所在对象上下文 动态对象创建: 通过Component.createObject()或Qt.createQmlObject() 新对象继承创建时的上下文环境 属性查找顺序遵循从当

2025-09-12 14:15:26 481

原创 QML模块全景解析

本文全面解析了QML模块体系,包含基础UI、图形媒体、位置服务等6大类20+模块的详细对照表,每个模块标注了导入路径、主要功能和最低Qt版本要求。文章提供了模块导入最佳实践,包括按需导入、版本控制和性能优化建议,并展示了企业级应用的典型模块组合架构。特别分析了Qt6的模块演进趋势,包括新增核心模块和性能优化方向。最后详述了QtQuick基础控件和布局系统的组成,为开发者提供全面的QML模块技术参考。

2025-09-09 16:53:06 1071

原创 QML和Qt Quick

QML是Qt的声明式编程语言,用于定义界面结构和行为,而Qt Quick是基于QML的框架,提供UI组件和运行时环境。QML是语言本身(支持属性绑定、JavaScript等),Qt Quick则是应用开发框架(包含可视化组件如Rectangle、Text等)。实际开发中二者通常结合使用,QML负责逻辑描述,Qt Quick提供UI构建能力。纯QML适合数据建模,Qt Quick适合构建完整GUI应用。QML如同HTML+CSS+JS,Qt Quick则类似React/Vue框架,二者共同构成Qt的声明式UI

2025-09-09 16:52:10 784

原创 QML 动态加载组件指南

QML动态加载组件技术指南:详解Loader、createComponent和createQmlObject三种核心方法,涵盖参数传递、状态监控和异步加载等高级技巧。特别强调生命周期管理(自动/手动销毁)和性能优化策略(对象池、预加载),并提供企业级应用模式如模块化架构和插件化设计。包含安全沙箱加载等实用方案,帮助开发者构建高效灵活的QML应用。

2025-09-06 09:46:54 730 2

原创 第一个QML程序

本文介绍了两种在Qt Quick中加载QML窗口的方法:通过QQmlApplicationEngine和QQuickView。QQmlApplicationEngine方式需要QML文件包含Window组件,适合复杂应用和多文件交互;而QQuickView自身作为窗口容器,要求QML文件不能包含顶层Window。文章详细对比了两种方法的实现步骤和注意事项,包括CMake配置、代码示例和常见错误处理,帮助开发者根据需求选择合适的方式构建Qt Quick应用。

2025-09-06 09:41:32 467

原创 如何学习一门编程语言

学习一门新的编程语言,需要循序渐进,从基础到进阶,再到实践和精通。在这个过程中,保持兴趣、多动手实践、坚持不懈是非常重要的。

2025-04-03 16:17:29 812 1

原创 在MFC中使用Qt(七):深入了解QWinWidget

总结来说,QWinWidget通过将Qt部件嵌入到原生窗口,并管理焦点、事件和窗口样式,实现了Qt与原生Win32/MFC应用程序的集成。实际开发使用时需要注意不同Qt版本的差异,正确处理窗口消息,管理焦点和事件传递,以及确保窗口样式的正确设置,以避免潜在的UI问题。

2025-04-03 16:16:44 1201

原创 在MFC中使用Qt(六):深入了解QMfcApp

QMfcApp ​未同时运行两个独立事件循环​Qt 主循环驱动:通过处理所有消息(包括 MFC 窗口消息)。​MFC 逻辑嵌入:消息过滤器和钩子确保 MFC 的OnIdle等关键逻辑被触发。​无阻塞设计:Qt 的exec()内部以非阻塞方式轮询消息,避免独占线程。这种设计使得 MFC 窗口能够响应消息,而 Qt 控件也能正常更新,实现无缝混合运行。

2025-03-31 11:29:00 1191

原创 在MFC中使用Qt(五):MFC和Qt的共存和交互

​集成消息循环:使用QMfcApp或类似方法,将Qt事件循环嵌入到MFC的消息循环中,避免阻塞。​正确处理窗口消息:通过QWinWidget等机制,确保Qt控件接收并处理相关消息,未被处理的消息传递给MFC。​信号与MFC交互:使用中间对象或适配器,将Qt信号转换为MFC的消息或方法调用。​事件过滤与协调:在必要时,通过事件过滤器或重写事件处理函数,控制事件的传递路径,避免冲突。通过上述方法,MFC 和 Qt 的事件处理机制可以高效共存,实现功能互补。

2025-03-31 11:26:00 2257

原创 在MFC中使用Qt(四):使用属性表(Property Sheet)实现自动化Qt编译流程

方式三:使用属性表,本质上还是和方式二:编辑项目文件一样,只是没有直接编辑项目文件,而是通过创建一个同样的QtAuto.props,再导入到当前项目文件中。通过这种方式可以实现Qt自动化编译流程属性配置的复用,在多人协同开发情况下,其中一人配置好通用的Qt自动化编译流程配置属性表,直接通过该属性表,可直接再另一个人的开发环境中导入配置使用,而无需再另外配置。

2025-03-28 11:03:50 819

原创 在MFC中使用Qt(三):通过编辑项目文件(.vcxproj)实现Qt的自动化编译流程

编辑项目文件(.vcxproj)实现自动化Qt编译流程方式,本质还是MFC项目。因此相较于在MFC中使用Qt(二):实现Qt文件的自动编译流程还是需要在项目属性中添加要使用的本地Qt模块的包含目录、附件库目录和库文件。

2025-03-28 11:02:21 1035

原创 在MFC中使用Qt(二):实现Qt文件的自动编译流程

借助Qt Visual Studio Tools​实现自动编译方式,简单快捷,且没有如手动编译流程中提到的(配置本地Qt包含目录、附加库目录、导入库、再手动添加编译后的文件等)众多手动介入的配置,因此这里是推荐使用该方法实现在MFC中使用Qt的。当然,也可以对比下后续文章介绍的:方式二:通过编辑项目文件(.vcxproj)实现自动化Qt编译流程。方式三:使用属性表(Property Sheet)实现自动化Qt编译流程。

2025-03-26 21:48:44 1219 2

原创 在MFC中使用Qt(一):玩腻了MFC,试试在MFC中使用Qt!(手动配置编译Qt)

现在总结一下,要想在C++/MFC项目中使用Qt库,你需要:①两个文件(qmfcapp.h、qmfcapp.cpp)、两行代码(QMfcApp::instance(this);)配置Qt环境。②配置项目。在项目属性中添加要使用的本地Qt模块的包含目录、附件库目录和库文件。③添加Qt控件(文件)到MFC项目中,手动配置需要Qt工具编译的Qt文件(.ui、.qrc、带Q_OBJECT的.h)④手动编译后,将编译后的输出文件也添加到MFC项目中。⑤MFC项目中添加需要的与Qt控件的交互。

2025-03-26 21:28:37 1750 2

原创 一键换肤的Qt-Advanced-Stylesheets

通过对Qt-Advanced-Stylesheets源码阅读及本地调试,剖析了Qt-Advanced-Stylesheets项目一键动态切换主题功能的核心实现,即通过不同的风格 -> 主题 -> 样式配置架构管控软件整体风格样式。需要注意的是控件相关样式设置需在CSS文件中配置,若在代码或ui文件中设置会无法动态切换,同时需要注意css文件中的颜色值需要通过颜色模板变量而不是具体数值设置。而对于混框架(如Qt + MFC)大型项目的一键切换风格主题样式,能否借鉴该实现方式,有待商榷。

2025-03-11 21:15:03 1739 3

原创 Qt开源控件库(qt-material-widgets)的编译及使用

综上,本文通过简单示例,详细介绍了自己克隆并编译开源控件库,然后应用在自己的项目中的完整流程及注意事项。通过该开源控件库项目,可学到动态库项目的编译和使用以及pimpl设计模式在项目中的实际应用,相信对实际工作会有一定的帮助。

2025-03-11 21:05:28 3697 2

原创 DBus名词术语命名规范详解:构建清晰、规范的DBus通信

DBus的命名规范是确保DBus通信清晰性和规范性的关键。通过本文的详细解析,相信您对DBus中涉及的名词术语的命名规范有了更全面的理解。在实际项目中,遵循DBus命名规范可以显著提升代码的可读性和可维护性,同时确保不同应用程序和服务之间的兼容性。

2025-03-07 21:09:12 1108

原创 ❌Manus?✅OpenManus + DeepSeek!!!

Manus 是由中国团队 Monica.im 开发的全球首款通用型 AI Agent(智能体)产品。其名称源自拉丁文 “mens et manus”(知行合一),强调“手脑并用”的能力——不仅能思考,还能自主执行复杂任务并交付成果。

2025-03-07 21:02:25 1849 2

原创 QDBus:Qt对DBus的封装支持

QDBusAbstractAdaptor用于将本地Qt对象暴露为DBus服务。通过继承QDBusAbstractAdaptor,开发者可以将Qt对象的信号、槽和属性暴露给DBus总线,供其他进程调用。Q_OBJECTQ_OBJECTpublic:QDBus是Qt框架中用于DBus通信的核心模块,它将DBus协议的复杂性与Qt的信号槽机制结合,为开发者提供了高效、易用的进程间通信工具。通过本文的深入解析,相信您对QDBus的关键特性、核心概念和应用场景有了更全面的理解。

2025-03-05 19:12:55 1204

原创 深入解析DBus协议:关键特性与核心概念

DBus协议为Linux桌面环境和系统服务提供了一种高效、灵活的进程间通信机制。通过本文的深入解析,相信您对DBus协议的关键特性、核心概念和应用场景有了更全面的理解。在实际项目中,合理使用DBus可以显著提升系统的模块化和灵活性。

2025-03-04 22:07:28 1087

原创 浅谈开发环境

工欲善其事,必先利其器。工作中经常用到的各种’东西’,如CMake、QMake、Make、MSBuildCLang、GCC、MinGW、MSVC等,有些在命名上有些类似,实际作用却不尽相同。因此这里换个角度来了解下这些‘东西’的作用,以及这些‘东西’之间的联系。

2025-03-04 22:04:12 1128

原创 Qt国际化

在全球化的今天,软件应用的国际化变得尤为重要。国际化不仅仅是翻译界面文本,更涉及到日期、时间、货币、数字格式等多方面的适应性调整。Qt作为一个强大的跨平台应用开发框架,提供了丰富的国际化支持工具,使得开发者可以轻松地将应用程序本地化到不同的语言和地区。本文将深入探讨Qt国际化的方方面面,包括工具使用、常见问题以及实际操作,帮助开发者掌握如何在Qt应用中实现高效的国际化,从而为全球用户提供更好的使用体验。

2024-08-02 17:44:40 1571 2

原创 Qt的事件处理机制、信号和槽以及两者之间的区别

本文详细介绍了Qt中的事件处理机制、信号和槽机制。并详细说明了信号和槽机制与事件系统是两个独立的系统,它们在内部工作方式上有所不同。最后以一个简单的按钮点击示例深入理解Qt中的事件处理机制、信号和槽机制的区别。

2024-08-02 17:44:03 1591

原创 Qt自定义带前后缀图标的PushButton

通过自定义QPushButton,重写paintEvent,同时保留setStyleSheet()设置的样式,来实现带前后缀图标的MPushButton,以满足特殊场景使用。这样实现的问题上面也有提到,自己绘制文本,需要考虑文本相关的样式(如text-align、padding)的影响。后续也可按需扩展维护hover、pressed、disabled状态的前后缀图标。

2024-07-25 16:41:34 960

原创 Qt样式表的底层实现原理

在Qt开发中,样式表(StyleSheet)是一个非常强大的工具,它允许我们通过类似于CSS的语法来定制控件的外观。然而,很多开发者对Qt样式表的底层实现原理并不清楚。本文将详细介绍Qt样式表的内部实现机制,并探讨在自定义控件中如何应用样式表。

2024-07-25 16:38:18 1207

原创 Qt是如何在C++基础上扩展的

本文从0开始新建C++和Qt项目,以此展开Qt是如何在C++基础上扩展的。Qt项目较C++项目的编译流程中添加了moc、uic、qrc编译以支持Qt扩展。最后简单介绍了Qt的动态属性和Q_PROPERTY两个在C++基础上扩展的核心特性。像其他的GUI、信号和槽、模型/视图、插件、绘图、动画等核心特性,实际应用较多,这里不再赘述。

2024-07-19 20:15:02 1131

原创 Qt中的高分辨率及缩放处理

如果希望当系统缩放设置增大时,应用能相应地缩小,以保持相同的视觉效果,可以自定义实现缩放处理。这通常被称为DPI缩放感知。注意这不是标准的缩放敏感性行为。通常,当用户增加系统的缩放设置时,他们期待更大的UI元素,以便在高分辨率上更容易阅读和操作。反过来,如果应用在用户增加系统缩放设置时缩小自己的UI,那么可能会引发用户的迷茫和困扰,因为他们把系统的缩放设置调大,却看到应用的UI反而变小了。大致原理如下:在软件初始化时,初始化并维护一个缩放因子。

2024-07-19 20:14:25 3193

原创 QtXlsx动态库编译(无需安装QtXlsx模块)

本文使用编译动态库的方式使用QtXlsx,而无需安装QtXlsx模块,方便快捷,将精力专注于使用而不是安装上面。

2024-04-11 11:44:27 1447

原创 给你的Qt软件加个授权

环境:Win11 64位核心思路:将授权相关信息加密保存到License.txt中,软件运行时获取并解密授权信息,判断是否在限制期限内即可。加解密部分使用第三方openssl库进行,因此需要手动在项目中链接下openssl库,参考步骤如下。

2024-04-11 09:37:59 2580

空空如也

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

TA关注的人

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