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

Tutorial interfata grafica XML KDE


   Kurt Granroth
   5 Septembrie 2000

Cod initial

Fisierul antet

Vom incepe cu kedit.h. Aici sint partile relevante (editate cu caractere ingrosate) ce lucreaza cu meniurile si bara de unelte (toolbar).


#ifndef _KEDIT_H_
#define _KEDIT_H_

class QPopupMenu;

class TopLevel : public KTMainWindow
{
    QPopupMenu *file, *edit, *options, *recentpopup;

protected:
    void setupMenuBar();
    void setupToolBar();
};
#endif
VECHI: kedit.h

Este foarte standard: un grup de pointeri catre meniuri si cite o functie care sa initializeze bara de meniuri si bara de unelte. In cadrul nostru de lucru nu avem nevoie de asa ceva. Va fi suficienta o singura metoda pentru initializarea "actiunilor" noastre.

NOTA: dupa cum se va observa mai tirziu, veti putea accesa toate "actiunile" dumneavoastra din orice metoda apartinind unei clase fara sa salvati un pointer catre ele. Totusi, daca anticipati folosirea "actiunilor" dumneavoastra mai tirziu, puteti salva un pointer aici.


#ifndef _KEDIT_H_
#define _KEDIT_H_

class TopLevel : public KTMainWindow
{
  protected:
    void setupActions();
};
#endif
NOU: kedit.h

Fisierul sursa

Aici este locul in care este facuta cea mai mare parte din munca. Prefer sa deschid fisierul intr-o fereastra divizata. In fereastra de sus creez functia mea setupActions() in timp ce sterg codul apartinind functiilor setupMenubar() si setupToolbar() in fereastra de jos.

Toate metodele aratate aici sint evidentiate prin caractere ingrosate ca sa arate doar codul relevant (si poate citeva linii inainte si dupa acesta).

Mai intii vom incepe cu constructorul original:


#include <qpopupmenu.h>
#include <ktoolbar.h>

TopLevel::TopLevel (QWidget *, const char *name)
    : KTMainWindow ( name)
{
  setupMenuBar();
  setupToolBar();
  setupStatusBar();

  readSettings();

  recentpopup->clear();

  for ( int i =0 ; i < (int)recent_files.count(); i++)
    recentpopup->insertItem(recent_files[i], i, i);

  options->setItemChecked( toolID, show_toolbar );
  options->setItemChecked( statusID, show_statusbar );
}
VECHI: Constructorul

Elementul recentpopup este un obiect QPopupMenu ce contine cele mai recente fisiere deschise. options este de asemenea un obiect QPopupMenu.

Iata cum arata un constructor consolidat:


#include <kaction.h>
#include <kstdaction.h>

TopLevel::TopLevel (QWidget *, const char *name)
    : KTMainWindow ( name)
{
  setupStatusBar();
  setupActions();

  readSettings();
}
NOU: Constructorul

Apoi, trecem la destructor. In mod normal aici trebuie sa stergeti numai meniurile.


TopLevel::~TopLevel()
{
  delete file;
  delete edit;
  delete options;
  delete recentpopup;
}
VECHI: Destructorul

Cu noul nostru cadru de lucru toate obiectele de tip interfata cu utilizatorul (UI) sint sterse pentru noi in culise.


TopLevel::~TopLevel()
{
}
NOU: Destructorul

Vom continua munca in sectiunea urmatoare.



Traducere de Daniel Ionescu. Adaptare de Claudiu Costin.