Partea I: Sa incepem
In primul rind vom crea un proiect KDE cu KDevelop. Selectati meniul "Project -> New Project...",
apoi alegeti C++/KDE/Simple KDE Application si completati cimpurile. Va
sugerez ca numele aplicatiei sa fie "SettingsTutorial" deoarece il folosesc in exemple.
Dupa ce vrajitorul (wizard) s-a terminat, compilati programul si vedeti daca ruleaza.
Ar trebui sa vedeti un program simplu KDE "Hello World".
Daca ati fi creat un proiect mai complex "KDE Application Framework" ati fi salvat din munca, dar
acest tutorial va merge pe calea cea lunga...
Vrajitorul a generat trei fisiere cu surse:
| |
main.cpp |
programul principal, creaza obiectul aplicatiei si il ruleaza |
| |
settingstutorial.h |
declaratia ferestrei principale a aplicatiei |
| |
settingstutorial.cpp |
implementarea ferestrei principale |
Vom ignora main.cpp deocamdata (in acest tutorial nu este important) si
vom arunca o privire asupra celorlalte doua fisiere:
#ifndef _SETTINGSTUTORIAL_H_
#define _SETTINGSTUTORIAL_H_
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <kmainwindow.h>
class SettingsTutorial : public KMainWindow {
Q_OBJECT
public:
SettingsTutorial();
virtual ~SettingsTutorial();
};
#endif // _SETTINGSTUTORIAL_H_
settingstutorial.h
#include "settingstutorial.h"
#include "settingstutorial.moc"
#include <qlabel.h>
#include <kmainwindow.h>
#include <klocale.h>
SettingsTutorial::SettingsTutorial() : KMainWindow(0, "SettingsTutorial")
{
setXMLFile("settingstutorialui.rc");
new QLabel( "Hello World", this, "hello label" );
}
SettingsTutorial::~SettingsTutorial()
{
}
settingstutorial.cpp
| Nota: |
 |
 |
 |
|
Am scos comentariile, dar in afara de acestea ar trebui sa arate similar cu cel
pe care (sper) l-ati creat.
|
|
Fereastra principala a dialogului de preferinte este derivata din clasa KMainWindow care ne
aduce numeroase widget-uri interesante (vedeti si
documentatia librariilor KDE).
Cele doua linii in constructor nu fac nimic special. Prima, setXMLFile(), poate fi stearsa
atita timp cit nu avem un fisier rc pentru interfata cu utilizatorul
(va fi explicat in alt tutorial). A doua linie creeaza o eticheta QLabel
care afiseaza textul "Hello World".
O scurta lamurire despre linia cu fisierul moc. Fisierele MOC sint generate automat si contin
toate functiile si declaratiile necesare compilarii macrourilor QObject. Deci, de fiecare data
cind veti crea o clasa care mosteneste clasa QObject (sau oricare din fiii acesteia)
va fi creat un fisier moc care va contine codul necesar compilarii!
Cum am spus, fisierele moc contin definitii si declaratii aditionale si incluzindu-l in
fisierul CPP inseamna ca acesta (codul din fisierul moc) va fi compilat impreuna cu codul sursa
al widget-ului. Compilarea dureaza ceva daca includem fisierul moc la sfirsit, asa ca
este recomandat sa il includem imediat dupa antetul fisierului (dupa ce includem fisierul cu aceeasi
denumire, dar cu extensia .h).
Cam atit in prima parte. Acum avem un cadru de lucru cu care sa ne "jucam".
|