[Démonstration]

 

Pour cette démonstration deux choix s’offrent à nous ou plutôt deux logiciels permettant de créer rapidement une interface utilisateur graphique sous WxWindows.

 

 

Ainsi j’ai pu tester deux logiciels WxDesigner (logiciel payant) et WxGlade (logiciel gratuit).

 

 

Il faut savoir que j’ai commencé sous WxGlade car le développement de notre interface graphique n’avait pas pris en compte un logiciel spécifique.

 

 

Il m’a été très difficile de faire une interface avec ce dernier. Je suis donc passé par une version d’évaluation de WxDesigner.

 

 

 

Illustration du logiciel WxDesigner

 

 

 

[Installation]

 

Etapes à suivre :

A partir de fichier source:

 

1. Aller sur le site de WxWindows pour télécharger les sources

http://www.wxwindows.org

 

Puis “Download” et choisir la version concernant le système d’exploitation adequate

 

2. Compresser le fichier source :


Si le fichier se termine par gz

Il faut taper la commande suivante :

tar zxvf wxGTK-2.4.1.tar.gz

Si le fichier se termine par bz2

Il faut taper la commande suivante

tar jxvf wxGTK-2.4.1.tar.bz2

 

3. Aller dans le répertoire wxGTK-2.4.1

cd wxGTK-2.4.1

 

4. Configurer le fichier source

./configure

 

5. Compiler le fichier source

make

 

6. Se mettre en Super Utilisateur et taper le mot de passe du root

su

 

7. Installer du fichier source dans le système exploitation

make install

 

8. Prévenir le système de l’ajout de nouvelles librairies

ldconfig

 

9. Sortir du mode Super Utilisateur

exit

 

 

 

A partir du fichier RPM :

 

1. Aller sur le site de WxWindows pour télécharger les sources

http://www.wxwindows.org

 

Puis “Download” et choisir la version concernant le système d’exploitation adequate

 

2. Se mettre en Super Utilisateur et taper le mot de passe du root

su

 

3. Installer

rpm -Uvh wxGTK-2.4.1-1.i386.rpm wxGTK-devel-2.4.1-1.i386.rpm

 

4. Sortir du mode Super Utilisateur

exit


Sous Windows avec Microsoft Visual C++

 

 

1. Télécharger les paquets qui permettent de gérer WxWindows

http://www.wxwindows.org

 

Puis “Download” et choisir la version concernant le système d’exploitation Windows

2.
Installer le paquet WxWindows 2.4.2

 


 

[Exemple]

 

Il serait intéressant de présenter le code source à travers un exemple simple même si le code génèré par WxDesigner est relativement simple et clair.

 

Exemple simple de code avec l’Api WxWindows :

 

HelloWorld.cpp

 

 

/* librairies utilisées pour la compilation du programme */
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif

#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif


/* Définition de mon application dérivant de wxApp */
class MyApp : public wxApp
{
            public:
            //Surdéfinition de la méthode OnInit()
            virtual bool OnInit();
};

/* Definition de la fenêtre pricaipale de type wxFrame */
class MyFrame : public wxFrame
{
            public:
            // Constructeur
            MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size, long style = wxDEFAULT_FRAME_STYLE);

/* méthodes des évènements */
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
private:
            /* Définition obligatoire des macros WxWindows. Cette macro contient la correspondance  entre les évènements et les méthodes qui y sont attachés */
            DECLARE_EVENT_TABLE()
};

/* ID pour les contrôles et le menu */
enum
{
            /* Items des menus */
            On_Quit = 1,
            On_About = wxID_ABOUT
};

/* Déclaration des autres mcros WxWindows */
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(On_Quit, MyFrame::OnQuit)
EVT_MENU(On_About, MyFrame::OnAbout)
END_EVENT_TABLE()
IMPLEMENT_APP(MyApp)

/* Methode d’initialisation de la fenetre principale */
bool MyApp::OnInit()
{
            // création de la fenêtre principale
            MyFrame *frame = new MyFrame(_T("Hello World"), wxPoint(50, 50), wxSize(450, 340));

// On rend visible la fenêtre
            frame->Show(TRUE);

//indique si l'initiation s'est bien passé
            return TRUE;
}

/* Contructeur de la fenêtre principale */
MyFrame::MyFrame(const wxString& title, const wxPoint& pos,
const wxSize& size, long style): wxFrame(NULL, -1, title, pos, size, style)
{
            // Création du menu File
            wxMenu *menuFile = new wxMenu;

            // Création du menu Help
            wxMenu *helpMenu = new wxMenu;
            helpMenu->Append(On_About, _T("&A Propos\tF1"), _T("Information de l'application"));

            menuFile->Append(On_Quit, _T("&Sortir\tAlt-X"), _T("Sortir de l'application"));

            // Ajout des menus dans la barre de menu
            wxMenuBar *menuBar = new wxMenuBar();
            menuBar->Append(menuFile, _T("&Fichier"));
            menuBar->Append(helpMenu, _T("&Aide"));

            // Liaison de la barre de menu à la fenêtre
            SetMenuBar(menuBar);

            // Création de la barre de statut
            CreateStatusBar();
            SetStatusText(_T("Bienvenue avec wxWindows!"));
}

// Méthodes paramétrant les évènements
void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
{
            // TRUE force la fenêtre à se fermer
            Close(TRUE);
}

// Méthodes affichant la boite de dialogue « A propos »
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
{
// Affiche une boite de dialogue
wxMessageBox(_T("Exemple simple Hello world "), _T("A propos"),
wxOK | wxICON_INFORMATION, this);
}

 

 

Cet exemple présente l’ensemble des éléments de base à positionner pour avoir un programme utilisant les concepts de base de l’Api WxWindows.