![]() | Generare il codice |
| Prev | Crea l'applicazione | Next |
In questo tutorial, usiamo lo strumento di sottoclasse fornito con KDevelop all'interno di Automake Manager. Se dovessi avere una versione di KDevelop sprovvista di questa funzionalità, leggi l'Chapter 7 dove spiego il passo da compiere in assenza dello strumento di sottoclasse.
Ora iniziamo con il semplice progetto KDE chiamato SigCreate e il file sigcreatedlg.ui che abbiamo aggiunto al progetto. All'interno di Automake Manager, nella sezione sigcreate (Program in bin) devi avere tre files: sigcreatedlg.ui, sigcreate.cpp e main.cpp. Il progetto deve essere compilato e risultare nella figura mostrata in Figura 3.
Dato che la classe sigcreate non è utile in nessun modo, la rimuoveremo e la useremo come sottoclasse del file sigcreatedlg.ui. All'interno di Automake Manager, fai click-destro su sigcreate.cpp e seleziona 'Remove' e una finestrella apparirà. Seleziona anche 'Remove also from disk'. Infine fai lo stesso con sigcreate.h. Questo è il modo di rimuovere vecchi file dal progetto e il Makefile.am sarà aggiornato. Ricordati di lanciare Automake & friends e configure prima di compilare il progetto nuovamente. Noi non lo faremo subito perchè dovremo fare altre modifiche. Useremo ora il nome di classe SigCreate come sottoclasse.
All'interno di Automake Manager, in sigcreate (programma in bin), fai click-destro su sigcreatedlg.ui e scegli Sottoclasse Widget... dal menu di contesto che appare. Completa poi il nome della sottoclasse con SigCreate. Seleziona 'Reformat source' e fai click su OK. Dì No poi riguardo l'aggiunta di questi file in cvs dato che non l'abbiamo abilitato nel progetto.

Dobbiamo togliere alcune linee nel file main.cpp dato che il template del semplice progetto KDE si basa su di un KMainWindow che è la classe di solito usata. Ma in questo caso, SigCreate è basato su QWidget. Dobbiamo quindi rimuovere tutte le linee comprese tra KApplication app; e return app.exec(); eccetto le seguenti:
SigCreate *mainWin = 0;
mainWin = new SigCreate();
app.setMainWidget( mainWin );
mainWin->show();
| Prev | Home | Next |
| Segnali e slot | Up | Implementare lo slot |