避免QML中的名称冲突

时间:2016-08-17 08:01:22

标签: qt qml qtquick2

在学习QML的同时,我想从一开始就学习一种好的风格。 但是,在命名时我已经遇到了一些问题,我找不到类似“世界广受好评”的编码约定,不仅涵盖了语句的顺序,还有一些好的命名约定。 (如下所示:http://doc.qt.io/qt-4.8/qml-best-practices-coding.html)。

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

那么有关如何命名的好指南:

  • 属性
  • 角色
  • 的ID
  • 功能
  • 功能变量
  • 部件

在该领域被证明是值得的?

1 个答案:

答案 0 :(得分:1)

QML已经强制执行一些命名约定 - 类型必须以大写字母开头,属性必须以小写字母开头,等等。

不幸的是,QML元素给它们带来了很多东西,而且通常情况下会出现命名冲突。在这种情况下,"最里面的声明"在解析东西时似乎优先考虑,那就是你自己的声明将影响股票属性,并且没有办法解决这些问题,不像在C ++中你可以BaseType::stuff。我已经概述了一种可能的方法,以防您需要覆盖并仍然访问"继承"成员here

如果您只需要避免冲突 - 前置的东西效果很好。最基本的方法是在_something中使用下划线 - QML的东西永远不会以下划线开头,因此没有冲突的危险。对于类型,我也预先添加一个字符,这对于在项目树视图中对组件进行排序/分组也很有用,我在前缀U_Something - U代表UI,C代表核心,P代表原型等等。在编程中通过永久性使用的相同的旧方法,特别是在没有类,名称空间等的语言中以及避免冲突的唯一方法是在C API中使用VK_ERROR_FORMAT_NOT_SUPPORTED之类的名称比如Vulkan。