在QML中如何使用首字母小写(蛇形)命名法

news2024/11/15 8:54:42

前言

最近在学习研究QML,想要自定义组件、信号、属性等,但如何对.qml文件、变量命名却是个问题。习惯了蛇形命名规范后,再让我回到驼峰命名规范,多少是不愿意的。

为了坚守信仰,我翻遍了各大技术网站,然而得到的答复始终就那几篇被转载无数次的文章,几乎都是让用首字母大写的命名规范。

算了,自己摸索试验吧!

答案

场景

自定义一个组件,文件名为my_btn.qml,想要在其它文件中使用该组件,并且声明此类型组件时使用名称MyBtn

my_btn.qml中还声明了属性变量btn_color,想要在事件中监听该属性值的变化并进行处理。

在QtCreator中的工程目录结构如下:
1694760736553)

在文件资源管理器中的目录结构如下:

在这里插入图片描述
在这里插入图片描述

其中my_btn.qmlqmldir文件需要位于同一目录components下,qmldir文件是特殊文件,用于描述一个模块及其中包含的组件类型、模块版本号等。

test.qml文件与components文件夹位于同一目录untitled3下,test.qml文件中会使用到模块components里的自定义组件MyBtn

方法

话不多说,直接上代码。

  • untitled3.pro
// qml工程需要包含`quickwidgets`
QT       += core gui quickwidgets

// 声明qml文件根目录
QML_DIR = $$PWD

// 这里导入环境变量,路径为qml文件根目录
QML_IMPORT_PATH += \
    $$QML_DIR

// 添加`qmldir`文件到工程中,用于模块管理
OTHER_FILES += \
    $$QML_DIR/components/qmldir

// 添加工程中所使用到的`.qml`文件,可以用通配符`*`,但它不能匹配多级目录
DISTFILES += \
    $$QML_DIR/*.qml  \
    $$QML_DIR/components/*.qml
  • qmldir
# 声明模块名称为`components`
module components

// 组件名称,版本号,组件源文件路径
MyBtn		1.0		my_btn.qml
  • my_btn.qml
import QtQuick 2.0
import QtQuick.Controls 2.0

Rectangle {
    // 声明属性`btn_color`
    property color btn_color: '#f00'

    width: 88
    height: 32
    // 绑定属性
    color: btn_color
}

  • test.qml
import QtQuick 2.0
import QtQuick.Controls 2.0

// 导入模块`components 1.0`,注意版本号需要与`qmldir`中声明的相匹配
import components 1.0

Item {
    // 使用`my_btn.qml`所定义的组件`MyBtn`
    MyBtn {
        btn_color: 'red'
    }
}

关于我

我是一位喜欢创新、乐观向上的少年
爱好是看书、踢足球、玩LOL等
喜欢我的文章的朋友,可以添加个人微信:CS-huo
有问题可以相互探讨,共同学习!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1012723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

里氏替换原则~

里氏替换原则(Liskov Substitution Principle)是面向对象设计中的一个基本原则,它是由Barbara Liskov提出的。 如果对于每一个类型为Apple的对象1,都有类型为fruit的对象2,使得以fruit定义的所有程序 P 在所有的对象1都…

Web服务器解析:从基础到高级的全面指南

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 引言 Web服务器是现代互…

竞赛选题 基于机器视觉的车道线检测

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 🔥 优质竞赛项目系列,今天要分…

el-calendar日历 简易排班

公司物流部要个简易的排班功能,由主管去设置线路,线路绑定上负责人。然后直接往日历里添加。 1、隐藏了自带的切换月份,改用了日期选择器。 2、禁用了非本月的点击事件,防止点击自动跳转到其他月份。 3、添加了点击多选&…

C# 流Stream详解(3)——FileStream源码

【FileStream】 构造函数 如果创建一个FileStream,常见的参数例如路径Path、操作方式FileMode、权限FileAccess。 这里说下FileShare和SafeFileHandle。 我们知道在读取文件时,通常会有两个诉求:一是如何更快的读取文件内容;二…

ATECLOUD二极管测试系统可以解决反向电流测试哪些痛点?

二极管具有单向导电性,但是有时候也会出现反向电流的情况。当反向电流变得很大时,二极管性能和寿命会受到很大影响。通过二极管测试系统对反向电流进行测试可以评估其性能和稳定性。 反向电流测试的重要性 理想情况下反向电流非常小,甚至可以…

2021年电工杯数学建模A题高铁牵引供电系统运行数据分析及等值建模求解全过程论文及程序

2021年电工杯数学建模 A题 高铁牵引供电系统运行数据分析及等值建模 原题再现: 我国是世界上电气化铁路运营里程最长、服役电力机车型号最多、运营最繁忙的国家。截至 2020 年底,我国铁路年消耗电量约 800 亿千瓦时,约占三峡年总发电量的 8…

Java实现添加文字水印、图片水印功能实战

java实现给图片添加水印实现步骤: 获取原图片对象信息(本地图片或网络图片) 添加水印(设置水印颜色、字体、坐标等) 处理输出目标图片 java实现给图片添加文字水印 获取原图片对象信息 第一步:获取需要…

人工智能安全-6-SQL注入检测

0 提纲 概述SQL注入方法SQL注入的检测方法SQL语句的特征提取天池AI上的实践 1 概述 SQLIA:SQL injection attack SQL 注入攻击是一个简单且被广泛理解的技术,它把 SQL 查询片段插入到 GET 或 POST 参数里提交到网络应用。 由于SQL数据库在Web应用中的…

【微服务实战之Docker容器】第四章-【微服务实战之Docker容器】第三章-镜像仓库

系列文章目录 【微服务实战之Docker容器】第一章-下载及安装 文章目录 系列文章目录坑:容器卷记得加入以下命令配置是个啥?能干啥?基本的命令读写规则映射添加说明卷的继承和共享 坑:容器卷记得加入以下命令配置 --privilegedtr…

van-calendar 实现移动端日历效果

<!--移动端端展示日历--><divv-if"isMobile &&tabActiveName true &&(formName 值班日历 || formName 值班编排)"><template v-if"Array.isArray(listData) && listData.length"><van-calendar:poppable&…

一生一芯14——chisel环境搭建

本人使用的ubuntu版本为22.04 anaconda 版本为23.1.0 本博客参考自https://blog.csdn.net/qq_38798111/article/details/129190615?ops_request_misc%257B%2522request%255Fid%2522%253A%2522169465704516800222836484%2522%252C%2522scm%2522%253A%252220140713.130102334…%…

芯科蓝牙BG27开发笔记8-片上Flash读写

目标 熟悉片上Flash的特点&#xff0c;知道如何使用&#xff0c;最好找到示例代码&#xff0c;有完整例程那是最好的 查找参考手册 除了768K的主空间&#xff0c;还包含&#xff1a; 1. USERDATA区域&#xff0c;用户定义数据&#xff0c;可以读写。大小只有1K。 2. 设备特…

长胜证券:十大流通股东占比例高好还是低好?

近年来&#xff0c;跟着我国本钱商场的不断发展&#xff0c;越来越多的投资者开始了解和关注股东占比这个目标。而在股东占比中&#xff0c;十大流转股东的持股份额是一个重要的目标。可是&#xff0c;关于投资者来说&#xff0c;十大流转股东占比是高好还是低好&#xff1f;本…

【SPI读取外部Flash】使用逻辑分析仪来读取FLASH Device ID

实验设备&#xff1a;25块钱的 逻辑分析仪 和 野火F429开发板 注意点&#xff0c;这个逻辑分析仪最大只能检测24M的波形&#xff0c;而SPI是在外部通道2&#xff0c;所以我们对系统时钟的分频&#xff0c;也就是给到通道2的时钟速度要在24M内&#xff0c;不然检测到的数据是有…

Peppertype.ai:人工智能内容营销平台

【产品介绍】 名称 Peppertype.ai 具体描述 Peppertype.ai是一个AI驱动的文章生成工具&#xff0c;可以帮助你在几秒钟内为各种渠道创建吸引人 的内容。无论你是想要写广告文案、社交媒体标题、博客大纲还是网站内容&#xff0c;Peppertype…

C++ PrimerPlus 复习 第五章 循环和关系表达式

第一章 命令编译链接文件 make文件 第二章 进入c 第三章 处理数据 第四章 复合类型 &#xff08;上&#xff09; 第四章 复合类型 &#xff08;下&#xff09; 第五章 循环和关系表达式 文章目录 for循环&#xff1b;基本语法重要问题和解答 基于范围的for循环&#xff08…

中秋学习Qt6

中秋学习Qt6 【1】Qt6 新增的模块【2】Qt6剔除模块和方法【3】Qt6改进 【1】Qt6 新增的模块 Qt6引入了一些新的模块&#xff0c;以便提供更多的功能和改进。以下是一些Qt6新增的模块&#xff1a; QtQuick3D&#xff1a;Qt6引入了全新的3D引擎模块QtQuick3D&#xff0c;它提供了…

脚本:python绘制七夕爱心

文章目录 效果脚本Reference 效果 脚本 import random from math import sin, cos, pi, log from tkinter import *CANVAS_WIDTH 640 # 画布的宽 CANVAS_HEIGHT 640 # 画布的高 CANVAS_CENTER_X CANVAS_WIDTH / 2 # 画布中心的X轴坐标 CANVAS_CENTER_Y CANVAS_HEIGHT /…

ABB 1TGE120010R1300 控制主板模块

ABB 1TGE120010R1300 控制主板模块是一种用于控制和监测电力设备的模块&#xff0c;具有以下功能&#xff1a; 控制和监测电力设备&#xff1a;该模块可以通过与电力设备连接来控制和监测设备的性能和状态&#xff0c;例如启停设备、调节电压和功率等。 通信功能&#xff1a;该…