Namenskonvention für Qt-Widgets

8

Ich arbeite mit einer Gruppe anderer Programmierer an einem Open-Source-Projekt, das mit C ++ und Qt erstellt wurde.

Jetzt brauchen wir eine Benennungskonvention für Widgets (und andere Variablen allgemein), um sie als Standard in unserem gesamten Code zu verwenden, damit der Code besser lesbar wird und wir eine bessere Koordination zwischen den Programmierern erhalten.

Irgendwelche Ratschläge?

EDIT: Ich spreche nicht über die Benennung neuer Klassen,

stattdessen spreche ich über das Benennen von Instanzen von Qt Widgets, sagen wir, ich habe eine Textbearbeitung für den Benutzernamen, sollte ich es txtEdtUsrNm nennen?

Und in diesem Fall, wie soll ich Ableitungen wählen?

    
Lawand 30.12.2008, 23:36
quelle

5 Antworten

13

Solange Sie in diese Richtung denken, würde ich diesen QtQuarterly-Artikel von Anfang bis Ende lesen.

Entwerfen von Qt-Style C ++ APIs

Das heißt, eine Sache, die wir tun, ist, die "Verwendung" der Instanz als den ersten Teil und das letzte vollständige Wort der Klasse als den letzten Teil zu setzen.

Also, Ihr "Benutzername" QTextEdit ist

%Vor%

Wenn Unklarheiten auftreten, z. B. QListView und QTreeView, wählen Sie den letzten nicht eindeutigen Abschnitt aus.

%Vor%

Sie können Abkürzungen herausfinden, wie Sie möchten (wie "Lbl" für QLabel), aber im Allgemeinen hat das ganze Wort funktioniert und war einfach zu lesen.

Auf der anderen Seite sind wir nicht zu streng, und es ist vielleicht wichtiger, die Intention der Instanzvariablen ohne den Klassennamen zu benennen, denn wenn Sie in Zukunft die Klasse ändern wollen, kommen Sie dazu Ändere den Namen, der ohne gute Refactoring-Tools schmerzt.

Finde vielleicht die allgemeinen Widgets heraus, die du am häufigsten verwendest, und wähle eine Namenskonvention für die allgemeinsten Super-Klassen und lass alles andere los.

Beispielliste von Dingen, die der Konvention entsprechen:

  • layout = Alle Klassen, die enden "Layout" und erben QLayout
  • button = Alle Klassen, die auf "Button" enden und QAbstractButton
  • erben

Die Klassen QAbstract ClassName sind ein guter Ort, um darüber nachzudenken, was in dieser Liste enthalten sein sollte.

    
Michael Bishop 31.12.2008, 23:11
quelle
2

Da Qt offen für Entwickler von Drittanbietern ist, haben sie verschiedene Dokumentationen bezüglich des Codierungsstils und der API-Design-Prinzipien zur Verfügung gestellt.

Diese Dokumente sind wirklich interessant. Hier sind ein paar Links:

Wiki: Qt Kodierungsstil

Wiki: Api Design Principles

Und dieses Dokument (PDF) von Jasmin Blanchette, das es sich lohnt zu lesen: Little Manual of API Design

>     
Jérôme 22.07.2009 12:26
quelle
1

Ich würde einfach die gleiche Namenskonvention verwenden, die Qt verwendet. Mach es dir leicht.

Ihre Namenskonvention ist ähnlich wie Java.

    
Mark Beckwith 31.12.2008 05:13
quelle
1

Die vollständigen Namen werden schnell lästig beim Lesen und Tippen. Daher verwenden wir normalerweise eine Abkürzung:

%Vor%

(Sie bekommen die Drift). Ja, es gibt einige Unklarheiten, aber sie werden normalerweise aus dem Kontext gelöst.

    
Marc Mutz - mmutz 21.07.2009 17:11
quelle
0

Um genau zu sein, die Frage bezieht sich auf "benennt Instanzen von Qt Widgets", aber die Antworten beziehen sich auf das Benennen von Variablen mit Referenzen auf Widgets-Instanzen.

Qt Widgets werden von QObject abgeleitet, das eine name -Eigenschaft mit getter objectName () hat. Gibt Qt der Eigenschaft einen Wert, wenn der Programmierer nicht? Nennen Sie es "auto generated" oder "default".

    
bootchk 30.05.2012 01:22
quelle

Tags und Links