Contents |
In this step I describe how a window class is created.
Now there are three files
/************* khello.h *******************/#include <kapp.h>#include <kmainwindow.h>class KHello : public KMainWindow
{ Q_OBJECTpublic:
void closeEvent(QCloseEvent *);
};
/************* khello.cc ******************/#include "khello.moc"void KHello::closeEvent(QCloseEvent *e)
{kapp->beep();
KMainWindow::closeEvent(e);
}/************* main.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();
}There are a few commands that need explaining:
Q_OBJECTThis is a command to the meta object compiler, which is included in the developer files for QT. You must start each KDE class with this line.
void closeEvent(QCloseEvent *);
This function is called when your window is being closed. We sound a beep when that happens and then call the original closeEvent() function. The original closeEvent() function takes care to exit the application when the last window gets closed.
#include "khello.moc"The meta object compiler produces a moc file, which you must include. The moc file is an extended version of your header file.
[on linux where KDEDIR and QTDIR contain the paths to where KDE and Qt are installed respectively] [FreeBSD 5.x users may omit the -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
[if moc is not in your path try $QTDIR/bin/moc]