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

Adaugarea unui meniu

Fereastra KHello

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


Traducere de Daniel Ionescu. Adaptare de Claudiu Costin.