
Now is the time to add a few buttons.
The old code is gray. I have not included main.cc below, because it is the same as in KHello #2.
/************* khello.h *******************/
#include <kapp.h>
#include <kmainwindow.h>
#include <qpushbutton.h>
class KHello : public KMainWindow
{
Q_OBJECT
public:
KHello();
void closeEvent(QCloseEvent *);
public slots:
void slotHello();
void slotExit();
private:
QPushButton *btnHello;
QPushButton *btnExit;
};
/************* khello.cc ******************/
#include "khello.moc"
#include <kmessagebox.h>
KHello::KHello() : KMainWindow()
{
btnHello = new QPushButton("Hello", this);
btnHello->setGeometry(45,30,50,25);
btnHello->show();
connect(btnHello, SIGNAL(clicked()), this, SLOT(slotHello()));
btnExit = new QPushButton("Exit", this);
btnExit->setGeometry(105,30,50,25);
btnExit->show();
connect(btnExit, SIGNAL(clicked()), this, SLOT(slotExit()));
}
void KHello::closeEvent(QCloseEvent *e)
{
kapp->beep();
KMainWindow::closeEvent(e);
}
void KHello::slotHello()
{
KMessageBox::messageBox(0, KMessageBox::Information, "Hello World!");
}
void KHello::slotExit()
{
close();
} |
I'll only explain what I believe is necessary this time.
| public slots: |
| connect(btnHello, SIGNAL(clicked()), this, SLOT(slotHello())); |
Connect the event "clicked" from the btnHello object to the event handler "slotHello".
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][<< Prev] [Next >>]
[updated by] David Leimbach
2003-02-26