Capítol 4. Generar el codi amb plantilles

El KDevelop utilitza plantilles per a la generació dels fitxers de codi font i per a evitar escriure codi repetitiu.

Crear una classe nova

L'ús més comú per a la generació de codi probablement és escrivint classes noves. Per a crear una classe nova en un projecte existent, feu clic dret en una carpeta de projecte i escolliu Crea des d'una plantilla.... El mateix diàleg es pot iniciar des del menú fent clic a FitxerNou des d'una plantilla..., però emprar una carpeta de projecte té l'avantatge d'establir un URL base pels fitxers de sortida. Escolliu Classe a la vista per a la selecció de la categoria, el llenguatge desitjat i la plantilla en les altres dues vistes. Després de seleccionar una plantilla per a la classe, haureu d'especificar els detalls de la classe nova.

Primer heu d'especificar un identificador per a la classe nova. Això pot ser un nom únic (com Bus) o un identificador complet amb espais de nom (com Transportation::Bus). En aquest últim cas, el KDevelop analitzarà l'identificador i separarà correctament els espais de nom del nom real. A la mateixa pàgina, podeu afegir classes base per a la classe nova. Possiblement us adonareu que algunes plantilles trien una classe base pel seu compte, sou lliure d'eliminar i/o afegir altres bases. Aquí heu d'escriure la declaració d'herència completa, la qual és dependent del llenguatge, com public QObject per a C++, extends AlgunaClasse per a PHP o simplement el nom de la classe per a Python.

A la pàgina següent, se us ofereix una selecció dels mètodes virtuals des de totes les classes heretades, així com alguns constructors, destructors i operadors per omissió. En marcar la casella de selecció situada al costat d'una signatura de mètode s'implementarà aquest mètode en la classe nova.

En fer clic a Següent apareixerà una pàgina on podreu afegir membres a una classe. Depenent de la plantilla seleccionada, aquests podran aparèixer en la classe nova com a variables de membre, o la plantilla podrà crear propietats pels seus respectius «setters» i «getters». En un llenguatge on s'han de declarar els tipus de les variables, com ara C++, haureu d'especificar el tipus i el nom del membre, com ara int número o QString nom. En altres llenguatges, és possible deixar de banda el tipus, però és una bona pràctica introduir-lo sempre, atès que la plantilla seleccionada encara podria fer-ne algun ús.

En les següents pàgines, podeu triar una llicència per a la classe nova, establiu qualsevol de les opcions personalitzades que necessiteu per a la plantilla seleccionada, i configureu les ubicacions de sortida per a tots els fitxers generats. En fer clic a Finalitza, completareu l'assistent i es crearà la classe nova. Els fitxers generats seran oberts a l'editor, així que podreu començar a afegir codi de seguida.

Després de crear una classe nova de C++, se us donarà l'opció d'afegir la classe a l'objectiu d'un projecte. Trieu l'objectiu des de la pàgina del diàleg, o descarteu la pàgina i afegiu els fitxers a un objectiu de forma manual.

Si heu triat la plantilla Qt Object, marcant alguns dels mètodes per omissió i afegint dues variables de membre, la sortida s'hauria d'assemblar a la següent imatge.

Podeu veure que els membres de dades es converteixen en propietats de Qt, amb funcions d'accés i les macros Q_PROPERTY. D'altra banda, els arguments per a les funcions «setter» només són passats com a referències a les constants quan és apropiat. A més, es declara una classe privada i un punter privat amb Q_DECLARE_PRIVATE. Tot això és realitzat per la plantilla, la tria d'una plantilla diferent en el primer pas podria canviar completament la sortida.