Development/Tutorials/Using KXmlGuiWindow (fr): Difference between revisions

From KDE TechBase
(Created page with '{{Template:I18n/Language Navigation Bar|Development/Tutorials/Using_KXmlGuiWindow}} {{TutorialBrowser| series=Beginner Tutorial| name=Comment utiliser KXmlGuiWindow| pre=[[Dev...')
 
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Template:I18n/Language Navigation Bar|Development/Tutorials/Using_KXmlGuiWindow}}
 
{{TutorialBrowser|
{{TutorialBrowser|


Line 12: Line 12:
reading={{class|KXmlGuiWindow}}
reading={{class|KXmlGuiWindow}}
}}
}}
==Résumé==
Ce tutoriel poursuit le [[Development/Tutorials/First_program_(fr)|précédent]] et introduit la classe {{class|KXmlGuiWindow}}.
Dans le précédent tutoriel, le programme se contentait de créer une boîte de dialogue. Nous allons maintenant chercher à avoir une application fonctionnelle.
[[image:introtokdetutorial2.png|frame|center]]
==KXmlGuiWindow==
La classe {{class|KXmlGuiWindow}} fournit une fenêtre principale avec des barres de menus, des barres d'outils, une barre de status et une zone principale au centre pouvant contenir un grand élément graphique. La plupart des applications KDE dérivent de cette classe car elle permet d'agencer simplement des menus et des barres d'outils au travers de fichiers XML (cette technologie est appelée XMLGUI). Nous n'allons pas utiliser XMLGUI dans ''ce'' tutoriel, mais dans le suivant.
Afin d'obtenir une fenêtre KXmlGuiWindow utile, nous devons créer une classe dérivant de celle-ci. Donc nous allons créer deux fichiers, <tt>mainwindow.cpp</tt> et <tt>mainwindow.h</tt> qui contiendront notre code.
===mainwindow.h===
<syntaxhighlight lang="cpp-qt" line>
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <KXmlGuiWindow>
#include <KTextEdit>
class MainWindow : public KXmlGuiWindow
{
  public:
    MainWindow(QWidget *parent=0);
  private:
    KTextEdit* textArea;
};
#endif
</syntaxhighlight>
Nous commençons par dériver KXmlGuiWindow à la ligne 7 avec <tt>class MainWindow : public KXmlGuiWindow</tt>.
Puis nous déclarons le constructeur avec <tt>MainWindow(QWidget *parent=0);</tt>.
Finalement nous déclarons un pointeur sur un objet qui constitura le cœur de notre programme. {{class|KTextEdit}} est un éditeur générique de texte riche ayant quelques raffinements de KDE tels que la dissimulation automatique du curseur.
===mainwindow.cpp===
<syntaxhighlight lang="cpp-qt" line>
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
{
  textArea = new KTextEdit();
  setCentralWidget(textArea);
  setupGUI();
}
</syntaxhighlight>
Tout d'abord, nous incluons évidemment le fichier d'en-tête contenant la déclaration de la classe à la ligne 1.
À la ligne 5, nous initialisons notre éditeur de texte avec un objet. Puis à la ligne 6, nous utilisons la fonction setCentralWidget() de la classe KXmlGuiWindow qui dit à la fenêtre KXmlGuiWindow ce qui doit être affiché dans la zone centrale.
Enfin, KXmlGuiWindow::setupGUI() est appelée, ce qui effectue des tas de choses derrière les coulisses et crée les barres de menus par défaut (Configuration, Aide...).
==Retour à main.cpp==
Afin d'afficher cette fenêtre, nous avons besoin d'ajouter quelques lignes au fichier main.cpp:
===main.cpp===
<syntaxhighlight lang="cpp-qt" line>
#include <KApplication>
#include <KAboutData>
#include <KCmdLineArgs>
#include <KLocale>
#include "mainwindow.h"
int main (int argc, char *argv[])
{
  KAboutData aboutData( "tutoriel2", 0,
      ki18n("Tutoriel 2"), "1.0",
      ki18n("Une simple zone de texte"),
      KAboutData::License_GPL,
      ki18n("Copyright (c) 2007 Developpeur") );
  KCmdLineArgs::init( argc, argv, &aboutData );
 
  KApplication app;
  MainWindow* window = new MainWindow();
  window->show();
  return app.exec();
}
</syntaxhighlight>
Les seules nouvelles lignes ici (par rapport au tutoriel 1) sont les lignes 6, 19 et 20. À la ligne 19, nous créons notre objet MainWindow puis nous l'affichons à la ligne 20.
==CMake==
La manière la plus simple de compiler le programme est d'utiliser CMake. Ce qui change par rapport au tutoriel 1 est que <tt>mainwindow.cpp</tt> a été ajouté à la liste des fichiers sources et que les occurences de <tt>tutorial1</tt> sont devenues <tt>tutorial2</tt>.
===CMakeLists.txt===
<syntaxhighlight lang="make" line>
project (tutorial2)
find_package(KDE4 REQUIRED)
include_directories(${KDE4_INCLUDES})
set(tutorial2_SRCS
  main.cpp
  mainwindow.cpp
)
kde4_add_executable(tutorial2 ${tutorial2_SRCS})
target_link_libraries(tutorial2 ${KDE4_KDEUI_LIBS})
</syntaxhighlight>
===Compilation===
Pour compiler, faire l'édition de lien et exécuter le programme, tapez :
mkdir build && cd build
cmake ..
make
./tutorial2
==Continuer==
Vous pouvez désormais continuer en apprenant à [[Development/Tutorials/Using_KActions_(fr)|utiliser les KActions]].
[[Category:C++]]

Latest revision as of 16:31, 19 July 2012

Comment utiliser KXmlGuiWindow
Tutorial Series   Beginner Tutorial
Previous   Tutoriel 1 - Hello World
What's Next   Tutoriel 3 - KActions et XMLGUI
Further Reading   KXmlGuiWindow

Résumé

Ce tutoriel poursuit le précédent et introduit la classe KXmlGuiWindow.

Dans le précédent tutoriel, le programme se contentait de créer une boîte de dialogue. Nous allons maintenant chercher à avoir une application fonctionnelle.

KXmlGuiWindow

La classe KXmlGuiWindow fournit une fenêtre principale avec des barres de menus, des barres d'outils, une barre de status et une zone principale au centre pouvant contenir un grand élément graphique. La plupart des applications KDE dérivent de cette classe car elle permet d'agencer simplement des menus et des barres d'outils au travers de fichiers XML (cette technologie est appelée XMLGUI). Nous n'allons pas utiliser XMLGUI dans ce tutoriel, mais dans le suivant.

Afin d'obtenir une fenêtre KXmlGuiWindow utile, nous devons créer une classe dérivant de celle-ci. Donc nous allons créer deux fichiers, mainwindow.cpp et mainwindow.h qui contiendront notre code.

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <KXmlGuiWindow>
#include <KTextEdit>

class MainWindow : public KXmlGuiWindow
{
  public:
    MainWindow(QWidget *parent=0);
		
  private:
    KTextEdit* textArea;
};

#endif

Nous commençons par dériver KXmlGuiWindow à la ligne 7 avec class MainWindow : public KXmlGuiWindow.

Puis nous déclarons le constructeur avec MainWindow(QWidget *parent=0);.

Finalement nous déclarons un pointeur sur un objet qui constitura le cœur de notre programme. KTextEdit est un éditeur générique de texte riche ayant quelques raffinements de KDE tels que la dissimulation automatique du curseur.

mainwindow.cpp

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
{
  textArea = new KTextEdit();
  setCentralWidget(textArea);
  setupGUI();
}

Tout d'abord, nous incluons évidemment le fichier d'en-tête contenant la déclaration de la classe à la ligne 1.

À la ligne 5, nous initialisons notre éditeur de texte avec un objet. Puis à la ligne 6, nous utilisons la fonction setCentralWidget() de la classe KXmlGuiWindow qui dit à la fenêtre KXmlGuiWindow ce qui doit être affiché dans la zone centrale.

Enfin, KXmlGuiWindow::setupGUI() est appelée, ce qui effectue des tas de choses derrière les coulisses et crée les barres de menus par défaut (Configuration, Aide...).

Retour à main.cpp

Afin d'afficher cette fenêtre, nous avons besoin d'ajouter quelques lignes au fichier main.cpp:

main.cpp

#include <KApplication>
#include <KAboutData>
#include <KCmdLineArgs>
#include <KLocale>

#include "mainwindow.h"

int main (int argc, char *argv[])
{
  KAboutData aboutData( "tutoriel2", 0,
      ki18n("Tutoriel 2"), "1.0",
      ki18n("Une simple zone de texte"),
      KAboutData::License_GPL,
      ki18n("Copyright (c) 2007 Developpeur") );
  KCmdLineArgs::init( argc, argv, &aboutData );
  
  KApplication app;
 
  MainWindow* window = new MainWindow();
  window->show();

  return app.exec();
}

Les seules nouvelles lignes ici (par rapport au tutoriel 1) sont les lignes 6, 19 et 20. À la ligne 19, nous créons notre objet MainWindow puis nous l'affichons à la ligne 20.

CMake

La manière la plus simple de compiler le programme est d'utiliser CMake. Ce qui change par rapport au tutoriel 1 est que mainwindow.cpp a été ajouté à la liste des fichiers sources et que les occurences de tutorial1 sont devenues tutorial2.

CMakeLists.txt

project (tutorial2)

find_package(KDE4 REQUIRED)
include_directories(${KDE4_INCLUDES})

set(tutorial2_SRCS 
  main.cpp
  mainwindow.cpp
)

kde4_add_executable(tutorial2 ${tutorial2_SRCS})
target_link_libraries(tutorial2 ${KDE4_KDEUI_LIBS})

Compilation

Pour compiler, faire l'édition de lien et exécuter le programme, tapez :

mkdir build && cd build
cmake ..
make
./tutorial2

Continuer

Vous pouvez désormais continuer en apprenant à utiliser les KActions.