Contenu | Rechercher | Menus

wxWidgets - programmation d'interface multiplate-formes

wxWidgets (anciennement wxWindows) est une bibliothèque graphique libre utilisée comme boîte à outils de programmation d'interface utilisateur multiplate-formes. À la différence d'autres boîtes à outils qui tentent de restituer une interface utilisateur identique sur toutes les plateformes, wxWidgets restitue des abstractions similaires, mais avec l'apparence native de chaque environnement cible, ce qui est moins dépaysant pour les utilisateurs finaux. wxWidgets est disponible entre autres pour Macintosh, GNU/Linux et Unix, Microsoft Windows, OS/2, ainsi que pour du matériel embarqué sous GNU/Linux ou Windows CE

wxWidgets est diffusé sous licence wxWidgets License, similaire à la licence LGPL, avec pour différence cependant qu'une compilation statique n'impose pas que le programme soit également sous license LGPL.

La bibliothèque originale est écrite en C++ mais il existe de nombreux binding vers les langages de programmation courants :

  • Python - wxPython , Perl - wxPerl , BASIC - wxBasic, Lua - wxLua, OCaml - wxCaml, JavaScript - wxJavaScript, Java - wxJava ou wx4j, Ruby - wxRuby, Eiffel - wxEiffel, Haskell - wxHaskell, C#/.NET - wx.NET, Euphoria - wxEuphoria, D - wxD
  • wxSQLite, wxCurl, wxXml

Installation

Installation dépôt officiel

Ajoutez le dépôt correspondant à votre version d'Ubuntu, ainsi que la clé d'authentification correspondante :

Remplacer distribution par votre nom de version d'ubuntu
 deb http://apt.wxwidgets.org/ DISTRIBUTION-wx main 
Exemple pour ubuntu 10.04 lucid
 deb http://apt.wxwidgets.org/ lucid-wx main 
clé d'authentification à ajouter
 wget -q http://apt.wxwidgets.org/key.asc -O- | sudo apt-key add - 

Rechargez la liste des paquets, puis installez le paquet wxWidgets.

wxFormBuilder - Autre IDE

Site officiel et tutoriels

Compilation

Compilation

Commencez par télécharger wxGTK sur le site officiel:

 wget http://switch.dl.sourceforge.net/sourceforge/wxwindows/wxGTK-2.8.8.tar.gz

Il pèse environ 13 Mo.

Dézipper cette archive, et placez-vous dans ce dossier :

 cd /home/user/wxGTK-2.8.8

Commencer par un bon vieux :

 ./configure

Le script va chercher si toutes les dépendances nécessaire à wxWidgets sont installées. Il demande notamment apt://libgtk2.0-dev

Après cela vous devez compiler wxWidgets :

 make

Si vous avez un processeur multicoeur, à la place de taper make ( ci dessous ) utilisez plutôt :

 
 make -j2

où 2 représente le nombre de cœur de votre processeur, si vous avez quatre cœurs vous mettrez donc j4 :-P

Ceci est assez long, allez donc boire un coup ça évite les migraines.

Une fois cette très longue installation compilation terminée faites un :

 sudo make install

Cette opération est aussi assez longue, mais rassurez vous largement moins que la compilation.

Sans ça rien ne fonctionnera :

 sudo ldconfig

Fermez le terminal, et miracle vous pouvez exécuter des applications wxWidgets.

Désinstallation

Pour effectuer une mise à jour, il est conseillé de bien désinstaller votre installation précédente ainsi :

 sudo make uninstall

Dans le dossier wxGTK-2.8.8 où l'on a compiler la librairie juste avant.

N'oubliez enfin pas un :

 sudo ldconfig

Installer ensuite la nouvelle version.

Pour les développeurs

Afin de compiler des applications utilisant wxWidgets, installez g++, puis entrer comme commande :

 g++ main.cpp -o executable `wx-config --libs --cppflags` -Wall

[added by MagicNono begin on 03/04/09]

pour exécuter les tutoriels présentés ici: http://chgi.developpez.com/wxwidgets/

il faut penser à encadrer toutes les chaînes avec la fonction/macro wxT

⇒ex:

 SetTitle( wxT("Nouveau Titre"));

ensuite, un prototype a évolué (tuto4), pour la gestion des timers (à modifier ds le header & le source)

ce n'est plus

 void TMyFrame::OnTimer(wxCommandEvent& event)

mais

 void TMyFrame::OnTimer(wxTimerEvent& event)

[added by MagicNono end]

Merci d'avoir lu ce tutoriel, j'invite tous ceux qui auraient des informations que j'aurai oublié de signaler a modifier cette page.

Voir aussi



Le contenu de ce wiki est sous licence : CC BY-SA v3.0