Qt 避免QML中的名称冲突

Qt 避免QML中的名称冲突,qt,qml,qtquick2,Qt,Qml,Qtquick2,在学习QML的同时,我想从一开始就学习一种好的风格。 然而,在命名方面,我已经遇到了一些问题,我找不到像“世界公认的”编码约定这样的东西,它不仅涵盖了语句的顺序,而且还涵盖了一些好的命名约定 (如此处所示:) 我发现的问题如下: 属性、ID、(模型)角色-它们都可以很容易地发生冲突,特别是当ID和角色通过多个项目层出现时 那么,对于如何命名您的: 性质 角色 身份证 功能 函数变量 组成部分 QML已经实施了一些命名约定——类型必须以大写字母开头,属性必须以小写字母开头,等等 不幸的是,QM

在学习QML的同时,我想从一开始就学习一种好的风格。 然而,在命名方面,我已经遇到了一些问题,我找不到像“世界公认的”编码约定这样的东西,它不仅涵盖了语句的顺序,而且还涵盖了一些好的命名约定 (如此处所示:)

我发现的问题如下:
属性、ID、(模型)角色-它们都可以很容易地发生冲突,特别是当ID和角色通过多个项目层出现时

那么,对于如何命名您的:

  • 性质
  • 角色
  • 身份证
  • 功能
  • 函数变量
  • 组成部分

QML已经实施了一些命名约定——类型必须以大写字母开头,属性必须以小写字母开头,等等

不幸的是,QML元素附带了很多东西,通常会出现命名冲突。在这种情况下,“最内层声明”似乎优先解决问题,即您自己的声明将是影子股票属性,并且无法再解决这些问题,不像C++中的“<代码> BaseType::Toes<代码> >。我已经概述了一种可能的方法,以防您需要重写并仍然访问“继承的”成员


如果你所需要的只是避免冲突,那么预先准备一些东西是非常有效的。最基本的方法是使用下划线,就像在
\u某物中一样
-QML的东西从不以下划线开头,因此没有冲突的危险。对于类型,我还预加了一个字符,这对于在项目树视图中对组件进行排序/分组也很有用,我预加了
U\U Something
-U表示UI,C表示核心,P表示原型等等。在编程中使用的老方法,尤其是在没有类、名称空间等语言中,避免冲突的唯一方法是使用诸如<代码> VKYErrRoRyFuffFix.FuxOb/<代码>之类的名称,在C++ API中很常见,比如Vulkan。其中,在给定的类中,所有成员必须具有唯一的名称(不考虑重载)。将角色、属性和函数视为属于一个命名空间。ID始终可以独立解析,它们形成自己的名称空间。