Adaugarea unui meniu
Descriere
Acum ne vom face utilizatorii foarte fericiti adaugind un meniu!
Codul sursa
Noul cod este colorat cu albastru.
#include <kapp.h>
#include <kmainwindow.h>
#include <kmessagebox.h>
#include <qpushbutton.h>
#include <kmenubar.h>
#include <kpopupmenu.h>
class KHello : public KMainWindow
{
Q_OBJECT
public:
KHello();
void closeEvent(QCloseEvent *);
public slots:
void slotHello();
void slotExit();
private:
QPushButton *btnHello;
QPushButton *btnExit;
KMenuBar *menu;
KPopupMenu *file, *help;
};
khello.h
#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()));
file = new KPopupMenu();
file->insertItem("&Hello",
this, SLOT(slotHello()));
file->insertItem("&Exit",
this, SLOT(slotExit()));
help = helpMenu("KHello\nde Daniel Marjamäki\n"
"Actualizat de David Leimbach");
menu = menuBar();
menu->insertItem("&File", file);
menu->insertItem("&Help", help);
}
void KHello::closeEvent(QCloseEvent *e)
{
kapp->beep();
KMainWindow::closeEvent(e);
}
void KHello::slotHello()
{
KMessageBox::information(this, "Hello World!",
"Important");
}
void KHello::slotExit()
{
close();
}
khello.cc
Explicarea codului
Acest cod a fost simplu si nu necesita nici o explicatie.
Oricum, cred ca o linie a fost importanta si o voi comenta.
help = helpMenu("KHello\nde Daniel Marjamäki\n"
"Actualizat de David Leimbach");
KMainWindow are o functie construita intern care genereaza
un meniu de ajutor. Folositi aceasta functie pentru a face aplicatia
dumneavoastra sa fie in concordanta cu alte programe KDE.
Compilare
Pentru Linux, $KDEDIR si $QTDIR contin caile unde sint
instalate KDE si QT.
Utilizatorii FreeBSD 5.x pot omite optiunea -ldl.
Daca utilitarul moc nu se afla in calea sistemului dumneavoastra,
incercati cu $QTDIR/bin/moc.
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
|