Question

Je travaille avec un groupe d'autres programmeurs sur un projet open source construit en C ++ et Qt.

Maintenant, nous avons besoin d'une convention de nommage pour les widgets (et les autres variables en général) afin de l'utiliser comme norme dans tout notre code afin qu'il soit plus lisible et que la coordination entre les programmeurs soit meilleure.

Un conseil?

EDIT: je ne parle pas de nommer de nouvelles classes,

au lieu de cela, je parle de nommer des instances de Qt Widgets, disons que j'ai un texte édité pour le nom d'utilisateur, dois-je l'appeler txtEdtUsrNm?

Et dans ce cas, comment suis-je censé choisir des dérivations?

Était-ce utile?

La solution

Tant que vous réfléchissez à ces questions, je commencerai par lire cet article de QtQuarterly du début à la fin.

Conception d'API C ++ de style Qt

Cela dit, nous avons notamment pour fonction de placer le "utiliser" de l'instance en tant que première partie et le dernier mot complet de la classe en tant que dernière partie.

Ainsi, votre " nom d'utilisateur " QTextEdit est

QTextEdit * userNameEdit = new QTextEdit(this);

En cas d’ambiguïté, telle que QListView et QTreeView, choisissez la dernière section non ambiguë.

QListView * userListView;

Vous pouvez trouver des abréviations comme bon vous semble (comme "Lbl" pour QLabel), mais en général, le mot entier a fonctionné et a été facile à lire.

D'un autre côté, nous ne sommes pas trop stricts à ce sujet et il pourrait être plus important de nommer l'intention de la variable d'instance sans le nom de la classe, car si, à l'avenir, vous souhaitez modifier la classe, vous obtiendrez changer le nom qui, en l'absence de bons outils de refactoring, est une douleur.

Peut-être déterminez-vous les widgets généraux que vous utilisez le plus et choisissez une convention de dénomination pour les super-classes les plus générales et laissez tout aller.

Exemple de liste d'éléments adhérant à la convention:

  • layout = Toutes les classes qui se terminent par "Mise en page" et hériter de QLayout
  • button = Toutes les classes qui se terminent par " Button " et hériter de QAbstractButton

Les classes QAbstract ClassName sont un bon endroit pour réfléchir à ce qui devrait figurer dans cette liste.

Autres conseils

Etant donné que Qt est ouvert aux développeurs tiers, ils ont mis à disposition plusieurs documents concernant le style de codage et les principes de conception de l'API.

Ces documents sont vraiment intéressants. Voici quelques liens:

Wiki: style de codage Qt

Wiki: Principes de conception d'API

Et ce document (PDF) de Jasmin Blanchette, qui mérite d'être lu: Petit manuel de conception d'API

Je voudrais simplement utiliser la même convention de nommage que celle utilisée par Qt. Rendez-le facile pour vous.

Leur convention de nommage est similaire à celle de Java.

Les noms complets deviennent rapidement gênants à lire et à taper. Nous utilisons donc généralement une abréviation:

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

(vous obtenez la dérive). Oui, il existe certaines ambiguïtés, mais elles sont généralement résolues à partir du contexte.

Pour être précis, la question concerne "Nommer les instances de Qt Widgets", mais les réponses concernent la désignation des variables contenant des références à des instances de widgets.

Les widgets Qt proviennent de QObject, qui possède une propriété name avec getter objectName (). Est-ce que Qt donne une valeur à la propriété si le programmeur ne le fait pas? Appelez-le " généré automatiquement " ou " défaut " valeur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top