Crearea unei clase fereastra
Descriere
In acest pas descriu cum este creata o clasa fereastra.
Codul sursa
Acum sint trei fisiere:
#include <kapp.h>
#include <kmainwindow.h>
class KHello : public KMainWindow
{
Q_OBJECT
public:
void closeEvent(QCloseEvent *);
};
khello.h
#include "khello.moc"
void KHello::closeEvent(QCloseEvent *e)
{
kapp->beep();
KMainWindow::closeEvent(e);
}
khello.cc
#include "khello.h"
int main( int argc, char **argv )
{
KApplication a( argc, argv, "khello" );
KHello *w = new KHello();
w->setGeometry(100,100,200,100);
a.setMainWidget( w );
w->show();
return a.exec();
}
main.cc
Explicarea codului
Aici sint citeva comenzi care au nevoie de explicatie:
Q_OBJECT
Aceasta este o comanda pentru compilatorul de meta-obiecte,
meta object compiler (moc), care este inclus in fisierele de
dezvoltare ale QT. Trebuie sa incepeti fiecare clasa KDE cu aceasta
linie.
void closeEvent(QCloseEvent *);
Aceasta functie este apelata cind fereastra este inchisa.
Cind se intampla acest lucru vom emite un beep si apoi vom apela
functia closeEvent() originala. Functia closeEvent()
originala are grija sa inchida aplicatia dupa ce va fi inchisa
ultima fereastra.
#include "khello.moc"
Compilatorul de meta-obiecte genereaza un fisier .moc pe
care trebuie sa il includeti. Fisierul .moc este o versiune
extinsa a fisierul antet .h.
Compilare
Pentru Linux, $KDEDIR si $QTDIR contin caile unde sint
instalate KDE si QT.
Utilizatorii FreeBSD 5.x pot omite optiunea -ldl.
g++ -c -I$KDEDIR/include -I$QTDIR/include \
-fno-rtti main.cc
moc khello.h -o khello.moc
g++ -c -I$KDEDIR/include -I$QTDIR/include \
-fno-rtti khello.cc
g++ -L$KDEDIR/lib -L$QTDIR/lib -lkdeui -lkdecore \
-lqt -ldl -o khello main.o khello.o
|