
QML
文章平均质量分 77
以初学者的状态学习QML,并记录下比较有用的知识点!
cpp_learners
C/C++、qt、MySQL、算法 学习者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
QML 鼠标穿透
本文介绍了在QML中实现TextField鼠标悬浮变色效果时遇到的问题及解决方法。当使用MouseArea覆盖TextField实现悬浮效果时,会导致输入框无法获取焦点。通过设置propagateComposedEvents: true和onPressed: mouse.accepted = false实现鼠标事件穿透,使TextField既能响应悬浮变色又能正常输入。最终方案还优化了鼠标指针样式,进入时显示文本输入光标,移出时恢复箭头指针,完善了交互体验。原创 2025-08-09 16:00:01 · 354 阅读 · 0 评论 -
QML 将一个qml文件定义为公共的全局单例
本文介绍了在QML中实现单例模式的完整方法。通过创建BasicConfig.qml文件,使用pragma Singleton声明单例,并定义全局属性、函数和信号。配合qmldir文件配置和main.cpp中的注册,可以像C++单例一样在项目各处调用。使用时只需导入路径,通过BasicConfig访问全局内容,且无法重复定义该组件。该方法有效实现了QML中的单例管理,便于维护全局状态和共享功能。原创 2025-08-03 17:33:08 · 361 阅读 · 0 评论 -
QML 调用外部js文件中的函数
QML支持调用JavaScript函数处理数据,实现逻辑与UI分离。开发者可将函数写在.js文件中,通过import导入QML后直接调用。示例展示了定义基本函数、数值计算和冒泡排序等JS功能,并在QML中调用输出结果。这种方式便于团队协作(UI与逻辑分工)或个人开发(代码模块化管理),提升代码可维护性和美观性。运行效果通过console.log验证函数正确执行。原创 2025-08-03 09:24:41 · 263 阅读 · 0 评论 -
QML 使用Settings组件处理ini配置文件操作
QML中使用Settings组件保存本地数据:通过设置fileName和category属性创建配置组,可直接在组件内定义变量作为初始值。读取时使用value()函数或直接访问id属性;修改时直接赋值而非setValue()。注意:配置文件存在时会优先读取已有值而非初始值;新增变量需在Settings中定义而非setValue();删除操作未提供官方方法。建议为每个Settings明确设置fileName和category属性,避免组名冲突。原创 2025-07-13 15:31:48 · 446 阅读 · 0 评论 -
QML 自定义Model基础之QAbstractListModel
本文介绍了在Qt中自定义ListModel并在QML端使用的实现方法。首先需要在C++端继承QAbstractListModel创建自定义Model类,实现rowCount()、data()和roleNames()三个核心方法,通过枚举和哈希映射建立C++与QML的数据绑定。文中详细说明了如何定义数据结构、实现数据映射,并通过构造函数初始化测试数据。最后演示了将自定义Model注册为QML单例,并在ListView中直接调用的完整流程。原创 2025-07-13 11:36:13 · 1090 阅读 · 1 评论 -
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 · 951 阅读 · 0 评论 -
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 · 856 阅读 · 0 评论 -
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 · 1031 阅读 · 0 评论 -
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 · 1041 阅读 · 0 评论 -
QML 使用QtObject定义私有变量
QML自定义控件默认无法定义私有变量,但可通过QtObject实现变量私有化。将变量定义在QtObject内部后,外部无法直接访问。若需外部访问,可使用property alias将QtObject的id暴露给外部。示例展示了如何通过QtObject封装innerColor变量,并通过Component.onCompleted内部修改或alias方式外部访问该变量,从而模拟私有变量效果。这种方法弥补了QML不支持真正私有变量的不足,提供了灵活的变量访问控制方案。原创 2025-07-06 11:35:45 · 1194 阅读 · 0 评论 -
QML Connections 信号与槽的绑定
QML信号与槽绑定方法总结:1. 信号定义使用signal关键字,发射时直接调用信号名;2. 绑定方式有三种:自动命名(on+大写信号名)、Connections组件绑定、推荐使用的带参数函数式绑定;3. 跨文件绑定时需传递信号源id,可设置ignoreUnknownSignals避免信号丢失报错。Connections组件是最推荐的绑定方式,具有更好的可读性和参数可控性。原创 2025-07-03 23:24:00 · 378 阅读 · 0 评论 -
QML ComboBox部件的使用
ComboBox用法记录,常用属性讲解如何使用!原创 2025-05-14 22:31:34 · 684 阅读 · 0 评论 -
QML Popup的绘制与Overlay的使用
Popup的常用用法!原创 2025-04-28 09:34:50 · 1071 阅读 · 0 评论 -
QML Text部件的使用
Text部件的常用用法介绍;原创 2025-02-26 22:28:42 · 942 阅读 · 0 评论 -
QML 将CheckBox添加到一个组,同一时间只能勾选一个,具有排他性
CheckBox的用法介绍原创 2025-02-24 22:06:21 · 383 阅读 · 0 评论 -
QML Button 部件的使用
介绍 Button 的常用用法!原创 2025-02-23 20:45:29 · 521 阅读 · 0 评论 -
QML MouseArea 鼠标事件详解
MouseArea 的用法介绍!(鼠标事件)原创 2025-02-22 23:24:32 · 1287 阅读 · 0 评论 -
QML Component 与 Loader 结合动态加载组件
Component 与 Loader 结合动态加载组件和动态关闭组件原创 2025-02-21 23:47:38 · 688 阅读 · 0 评论 -
QML 状态机 与 动画
状态机在QT中是一个很重要的概念,部件可以通过状态去处理相应的操作!原创 2025-02-19 22:47:45 · 989 阅读 · 0 评论 -
QML 自定义矩形框Rectangle,实现四个边框自定义大小
qml自定义矩形,实现四个边框自定义大小原创 2025-02-18 21:44:30 · 579 阅读 · 0 评论 -
QML 部件获得焦点触发的全局槽函数 onActiveFocusItemChanged
qml全局焦点槽函数触发原创 2025-02-17 22:10:50 · 265 阅读 · 0 评论