- 博客(250)
- 资源 (9)
- 问答 (2)
- 收藏
- 关注
原创 C/C++ Protobuf3 详细使用教程
详细介绍Protbuf3在Linux和Windows环境的安装、编译、与使用,学习Protobuf3,此篇博客足以!
2025-07-26 11:26:59
960
原创 QML 使用Settings组件处理ini配置文件操作
QML中使用Settings组件保存本地数据:通过设置fileName和category属性创建配置组,可直接在组件内定义变量作为初始值。读取时使用value()函数或直接访问id属性;修改时直接赋值而非setValue()。注意:配置文件存在时会优先读取已有值而非初始值;新增变量需在Settings中定义而非setValue();删除操作未提供官方方法。建议为每个Settings明确设置fileName和category属性,避免组名冲突。
2025-07-13 15:31:48
407
原创 QML 自定义Model基础之QAbstractListModel
本文介绍了在Qt中自定义ListModel并在QML端使用的实现方法。首先需要在C++端继承QAbstractListModel创建自定义Model类,实现rowCount()、data()和roleNames()三个核心方法,通过枚举和哈希映射建立C++与QML的数据绑定。文中详细说明了如何定义数据结构、实现数据映射,并通过构造函数初始化测试数据。最后演示了将自定义Model注册为QML单例,并在ListView中直接调用的完整流程。
2025-07-13 11:36:13
929
2
原创 QML与C++相互调用函数并获得返回值
本文详细介绍了QML与C++之间的双向函数调用方法,重点演示了复杂类型(如QJsonObject/QMap和QList/QJsonArray)的处理方式。在C++端,通过Q_INVOKABLE修饰函数并注册为单例对象,使QML可以直接调用;在QML端定义函数后,C++通过QMetaObject::invokeMethod进行调用。文章还特别讲解了返回值处理技巧:对于QJSValue类型可转换为QJsonObject/QMap或QVariantList/QJsonArray,若返回JSON字符串则可直接解析。
2025-07-12 14:42:04
848
原创 QML与C++交互之C++端信号绑定QML端槽函数
本文介绍了在QML与C++交互中实现信号与槽绑定的方法。重点讲解了如何将C++定义的信号与QML的槽函数绑定,并提供三种实现方式:1) 在QML中通过Connections绑定自定义对象;2) 注册全局单例对象进行绑定;3) 在C++端使用connect函数直接绑定。特别强调了C++信号参数必须使用QVariant类型,否则无法完成绑定。文章还通过MyObject类的完整示例代码,展示了信号定义、槽函数实现、QML端绑定以及调用过程,为开发者提供了QML与C++交互的实用解决方案。
2025-07-12 11:06:55
800
原创 QML与C++交互之QML端信号绑定C++端槽函数
本文介绍了QML与C++交互中信号与槽绑定的三种实现方式。首先创建了自定义C++类MyObject并注册到QML中,重点展示了如何通过Q_INVOKABLE宏修饰函数使其能被QML调用。然后详细讲解了三种绑定方式:1)通过QML的Connections对象间接绑定;2)在QML组件的Component.onCompleted中直接连接;3)在C++端通过获取QML对象后使用QObject::connect进行绑定。每种方式都提供了代码示例,并演示了通过按钮点击触发信号时槽函数的多重调用效果。
2025-07-06 17:38:40
899
原创 QML与C++交互之创建自定义对象
本文介绍了在QML中通过C++定义全局对象的方法。主要包含:1. 使用QQmlApplicationEngine的rootContext()获取全局上下文,通过setContextProperty()设置全局变量;2. 自定义C++类继承QObject并使用Q_PROPERTY宏暴露属性,通过qmlRegisterType()注册后可在QML中使用;3. 详细解释了Q_PROPERTY的参数含义和NOTIFY信号的作用机制,说明冒号赋值(:)会建立属性绑定关系,而等号赋值(=)不会。
2025-07-06 14:37:58
1004
原创 QML 使用QtObject定义私有变量
QML自定义控件默认无法定义私有变量,但可通过QtObject实现变量私有化。将变量定义在QtObject内部后,外部无法直接访问。若需外部访问,可使用property alias将QtObject的id暴露给外部。示例展示了如何通过QtObject封装innerColor变量,并通过Component.onCompleted内部修改或alias方式外部访问该变量,从而模拟私有变量效果。这种方法弥补了QML不支持真正私有变量的不足,提供了灵活的变量访问控制方案。
2025-07-06 11:35:45
1139
原创 QML Connections 信号与槽的绑定
QML信号与槽绑定方法总结:1. 信号定义使用signal关键字,发射时直接调用信号名;2. 绑定方式有三种:自动命名(on+大写信号名)、Connections组件绑定、推荐使用的带参数函数式绑定;3. 跨文件绑定时需传递信号源id,可设置ignoreUnknownSignals避免信号丢失报错。Connections组件是最推荐的绑定方式,具有更好的可读性和参数可控性。
2025-07-03 23:24:00
321
原创 QT 日志 - qInstallMessageHandler将qDebug()打印内容输出到文件
本文介绍了在Qt中实现日志功能的方法。通过自定义日志函数和安装消息处理钩子,可将qDebug()等输出重定向到文件。关键步骤包括:1)定义Log函数处理不同级别的日志消息;2)使用qInstallMessageHandler安装日志钩子;3)实现日志文件管理,支持按日期分割文件。文中还提供了一个完整的LogHelper类,封装了日志路径设置、文件写入、线程安全等功能,并解决了在统信UOS系统上qDebug输出受限的问题。该方案适用于Qt开发中的调试和问题排查,支持多线程环境下的安全日志记录。
2025-07-02 14:50:22
454
原创 C/C++ 使用rapidjson库 操作Json格式文件(创建、插入、解析、修改、删除)
详细介绍RapidJSON的具体使用使用用法!RapidJSON是由腾讯开源的高性能C++ JSON解析/生成库;跨平台:纯头文件实现,不依赖第三方库;大文件支持:能处理超过100MB的JSON数据;特别适合需要处理大型JSON数据的C++开发者使用,解决了QT自带JSON库处理大文件的限制问题。
2025-06-30 23:11:19
1140
原创 QT 自定义ComboBox,实现下拉框文本颜色设置
本文介绍了如何通过自定义QComboBox实现下拉框中文本颜色设置。主要实现方法包括:1)继承QComboBox创建ColorComboBox类;2)使用自定义委托类CustomColorDelegate绘制带颜色的项;3)通过重写paintEvent和设置样式表控制当前项颜色。代码提供了完整的头文件和实现文件,支持添加带颜色的选项,并在选择变化时动态更新当前项颜色。该方法简单易用,可满足项目中不同颜色文本的下拉框需求。
2025-06-26 09:40:06
392
原创 QT 引入Quazip和Zlib源码工程到项目中,无需编译成库,跨平台,加密压缩,带有压缩进度
引入Quazip和Zlib源码,无需编译成库,跨平台,加密压缩,解密解压缩,进度条等;
2025-02-21 11:48:36
2116
原创 Windows环境 SDL跨平台多媒体库简单入门
本篇博客学习SDL主要用与辅助学习FFmpeg开发,所以只会记录下与FFmpeg相关的知识点。
2024-11-23 17:35:46
1055
原创 QT QLineEdit失去焦点事件问题与解决
本文介绍如何获得QLineEdit的失去焦点事件和获得焦点的输入框也会触发失去焦点事件的问题!2.重写 focusOutEvent当获得焦点时,focusInEvent方法会被触发;当失去焦点时,focusOutEvent方法会被触发;然后就可以在方法内部做一些我们的需求处理,例如可以通过信号与槽通知主程序等;直接使用我们自定义的类,创建LineEditFocus对象即可;如果使用的是ui布局中的部件,那么可以将部件提升为我们自定义的LineEditFocus即可;如果有多个输入框部件,且当
2024-11-15 09:13:39
1760
统信UOS ARM64架构 离线安装 Qt5.11.3
2025-05-07
ARM64 统信UOS QT 静态资源2,离线安装qtcreator,lib库
2025-02-27
arm64架构编译的 QT5.15.16 静态库
2024-12-05
QT 引入Quazip和Zlib源码,实现跨平台加密压缩和解压缩工程,无需编译成库,支持进度条
2025-02-21
麒麟V10 ARM64架构 离线安装 Qt5.12.12
2024-12-04
统信UOS ARM64架构 离线安装 Qt5.11.3
2024-11-11
统信UOS ARM64架构 离线安装 Qt5.11.3
2024-12-04
yuvplayer播放器
2024-10-08
Linux 程序崩溃-闪退日志打印
2024-06-07
Qtxlsx + QtCreator + 自己编写的对excel文件操作小案例
2022-08-30
高性能、高并发,封装了epoll的框架
2023-03-30
QCefView与html通信案例.rar
2022-07-29
QT 自己写一个消息弹窗源码
2022-05-07
QT五子棋项目(人机对战).rar
2022-01-16
QT与JS交互项目代码
2022-01-05
90坦克大战.rar
2020-05-01
C++ 五子棋游戏.rar
2020-03-08
C/C++语言开发的一款 五子棋 游戏
2020-03-06
mini-xml如何支持解析中文?
2021-12-23
Centos7中如何使用QT嵌入CEF3进行开发?
2021-08-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人