Qt小部件的命名约定

时间:2008-12-30 23:36:46

标签: c++ qt coding-style widget

我正与一群其他程序员一起使用C ++和Qt构建的开源项目。

现在,我们需要一个小部件(通常是其他变量)的命名约定,以便将它作为我们所有代码的标准使用,这样代码就可以获得更好的可读性,并且我们可以在程序员之间实现更好的协调。

有什么建议吗?

编辑:我不是在谈论命名新类,

相反,我在谈论命名Qt Widgets的实例,假设我有一个用户名的文本编辑,我应该将其命名为txtEdtUsrNm吗?

在那种情况下,我该如何选择推导?

5 个答案:

答案 0 :(得分:15)

只要您按照这些思路进行思考,我就会从开始到结束时阅读这篇QtQuarterly文章。

Designing Qt-Style C++ APIs

那就是说,我们做的一件事就是将实例的“使用”作为第一部分,将最后一个完整的单词作为最后一部分。

所以,你的“用户名”QTextEdit是

QTextEdit * userNameEdit = new QTextEdit(this);

如果存在歧义,例如QListView和QTreeView,请选择最后一个不明确的部分。

QListView * userListView;

你可以找出你喜欢的缩写(例如QLabel的“Lbl”),但一般来说,整个单词都有效且易于阅读。

另一方面,我们对此并不太严格,在没有类名的情况下命名实例变量的意图可能更为重要,因为如果将来要更改类,则可以改变名称,在没有好的重构工具的情况下,这是一种痛苦。

也许弄清楚你最常使用的小部件,并为最常见的超级类选择一个命名约定,然后让其他所有东西都去。

符合惯例的事项列表:

  • layout =结束的所有类 “布局”并继承QLayout
  • button =以“Button”结尾并继承QAbstractButton
  • 的所有类

QAbstract ClassName 类是思考该列表中应该包含的内容的好地方。

答案 1 :(得分:2)

由于Qt对第三方开发人员开放,他们提供了几个关于编码风格和API设计原则的文档。

这些文件非常有趣。以下是一些链接:

Wiki : Qt Coding Style

Wiki : Api Design Principles

来自Jasmin Blanchette的这份文件(PDF)值得一读:Little Manual of API Design

答案 2 :(得分:1)

我只会使用Qt使用的相同命名约定。让自己轻松自如。

他们的命名约定类似于java。

答案 3 :(得分:1)

全名快速阅读和输入很麻烦,所以我们通常使用缩写:

QLabel * fooLB;
QPushButton * fooPB;
QTextEdit * fooTE;
QSpinBox * fooSB;

(你得到漂移)。是的,有些含糊不清,但它们通常是从上下文中解决的。

答案 4 :(得分:0)

准确地说,问题是关于“命名Qt Widgets的实例”,但答案是关于命名变量持有对小部件实例的引用。

Qt Widgets派生自QObject,它具有带getter objectName()的name属性。如果程序员没有,Qt会给该属性一个值吗?将其称为“自动生成”或“默认”值。