Pregunta

Estoy trabajando con un grupo de otros programadores en un proyecto de código abierto creado con C ++ y Qt.

Ahora, necesitamos una convención de nomenclatura para que los widgets (y otras variables en general) lo utilicen como estándar en todos nuestros códigos para que el código sea más legible y tengamos una mejor coordinación entre los programadores.

¿Algún consejo?

EDITAR: No estoy hablando de nombrar nuevas clases,

en cambio, estoy hablando de nombrar instancias de Qt Widgets, digamos que tengo una edición de texto para el nombre de usuario, ¿debería llamarlo txtEdtUsrNm?

Y en ese caso, ¿cómo se supone que debo elegir las derivaciones?

¿Fue útil?

Solución

Mientras piense en este sentido, empezaría por leer este artículo de QtQuarterly de principio a fin.

Diseño de APIs C ++ estilo Qt

Dicho esto, una cosa que hacemos es poner el " uso " de la instancia como la primera parte y la última palabra completa de la clase como la última parte.

Por lo tanto, tu " nombre de usuario " QTextEdit es

QTextEdit * userNameEdit = new QTextEdit(this);

Si hay ambigüedad, como QListView y QTreeView, seleccione la última sección no equitativa.

QListView * userListView;

Puede averiguar las abreviaturas como desee (como " Lbl " para QLabel), pero en general, toda la palabra ha funcionado y ha sido fácil de leer.

Por otra parte, no somos demasiado estrictos con respecto a esto y podría ser más importante nombrar la intención de la variable de instancia sin el nombre de la clase porque si, en el futuro, desea cambiar la clase, puede cambiar el nombre que, en ausencia de buenas herramientas de refactorización, es un dolor.

Tal vez descubra los widgets generales que más utiliza, y elija una convención de nomenclatura para las súper clases más generales y deje todo lo demás.

Ejemplo de lista de cosas que se adhieren a la convención:

  • layout = Todas las clases que terminan en " Diseño " y heredar QLayout
  • botón = Todas las clases que terminan en " Botón " y heredar QAbstractButton

Las clases QAbstract ClassName son un buen lugar para pensar qué debería estar en esa lista.

Otros consejos

Dado que Qt está abierto a desarrolladores externos, pusieron a disposición varios documentos sobre el estilo de codificación y los principios de diseño de la API.

Estos documentos son muy interesantes. Aquí hay algunos enlaces:

Wiki: Estilo de codificación Qt

Wiki: Principios de diseño de API

Y este documento (PDF) de Jasmin Blanchette, que vale la pena leer: Little Manual of API Design

Simplemente usaría la misma convención de nomenclatura que Qt usa. Hazlo fácil para ti.

Su convención de nomenclatura es similar a java.

Los nombres completos rápidamente se vuelven molestos de leer y escribir, por lo que usualmente usamos una abreviatura:

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

(obtienes la deriva). Sí, hay algunas ambigüedades, pero generalmente se resuelven desde el contexto.

Para ser precisos, la pregunta es sobre " nombrar instancias de Qt Widgets " ;, pero las respuestas son sobre nombrar variables que tienen referencias a instancias de widgets.

Los widgets Qt se derivan de QObject que tiene una propiedad de nombre con getter objectName (). ¿Qt le da un valor a la propiedad si el programador no lo hace? Llámalo " generado automáticamente " o " predeterminado " valor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top