Pagina principala
Informatii
Internationalizarea
pROgrame KDE/Qt
Download
Documentatii
Despre LKR
Contact
Resurse
Harta site-ului

KHello, cel mai simplu program KDE


   David Leimbach
   1 Februarie 2000

Crearea unei clase fereastra

Fereastra KHello

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


Traducere de Daniel Ionescu. Adaptare de Claudiu Costin.