Liens connexes

Dépêche modérée par

Dépêche éditée par

: wxWidgets 2.6 est sorti

Posté par Thomas Monjalon (page perso, ). Modéré le 22 avril 2005.
0
Après un an et demi d'attente (depuis la 2.4.2), une nouvelle version stable de wxWidgets vient de sortir. C'est la première version stable à prendre le nom de wxWidgets. En effet, le précédent nom de wxWindows semblait ne pas plaire à Microsoft.
Pour rappel, wxWidgets est une bibliothèque graphique portable "native" pour GTK (NdM : 1.2.x, mais aussi 2.x avec cette nouvelle version), Motif, X11, OS/2, Mac OS 9, Mac OS X, Win16, Win32, WinCE, Nano-X, MGL et Palm OS.

Dans cette nouvelle version majeure, un important travail sur le support de la STL a été fait. De nouvelles fonctionnalités ont fait leur apparition comme, par exemple, wxGridBagSizer qui permet de décrire l'organisation d'une fenêtre comme un tableau dont les cases peuvent fusionner. Espérons que cette nouvelle version permette à encore plus de développeurs de découvrir ce fabuleux framework très bien documenté.

> Lire la suite (64 commentaires, moyenne: 2,8).   [dépêche : 1710 caractères]

Bien plus qu'un dénominateur commun de tous les environnements graphiques, elle se "link" avec la bibliothèque graphique de la plate-forme et prend donc l'apparence de celle-ci. Il est également possible d'utiliser les spécificités de la plate-forme (au dépend de la portabilité).
En réalité, wxWidgets est un framework complet : des fonctionnalités telles que les threads, le réseau, l'affichage HTML et bien d'autres y sont présentes.
Il est écrit en C++ mais est également très utilisé en Python. De nombreux autres langages tels que Perl, Haskell, Basic ou Ruby sont supportés dans un état plus ou moins avancé.
Enfin, cerise sur le gâteau, le tout est distribué sous une licence basée sur LGPL avec une exception permettant aux logiciels commerciaux de ne pas fournir leurs sources.

--------------------------

Le traditionnel "Hello world" :

#include "wx/wx.h"

class MyFrame: public wxFrame
{
public:
MyFrame(const wxString& title)
: wxFrame((wxFrame *)NULL, -1, title)
{
wxMenu *menuFile = new wxMenu;
menuFile->Append(wxID_EXIT, "E&xit");
wxMenuBar *menuBar = new wxMenuBar;
menuBar->Append(menuFile, "&File");
this->SetMenuBar(menuBar);
}
void OnQuit(wxCommandEvent& event)
{
this->Close(true);
}
DECLARE_EVENT_TABLE()
};

BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
END_EVENT_TABLE()

class MyApp: public wxApp
{
virtual bool OnInit()
{
MyFrame *frame = new MyFrame( "Hello World");
frame->Show(true);
this->SetTopWindow(frame);
return true;
}
};

IMPLEMENT_APP(MyApp)

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

drôle de cerise sur un drôle de gateau

Posté par Gniarf () le 22/04/2005 à 17:11. (lien). Évalué à 7.

Enfin, cerise sur le gâteau, le tout est distribué sous une licence basée sur LGPL avec une exception permettant aux logiciels commerciaux de ne pas fournir leurs sources.

--
Windows has no users. It has hostages.

Je me marre

Posté par Philippe Fremy (page perso, ) le 22/04/2005 à 17:32. (lien). Évalué à 1.

<< wxGridBagSizer qui permet de décrire l'organisation d'une fenêtre comme un tableau dont les cases peuvent fusionner >>

Si j'ai bien compris, c'est ce qui permet de faire facilement des fenetres redimensionnables. Impressionnant, c'etait une fonctionnalite de base dans Qt 1.0 (les qlayout) et dans Gtk 1.0 aussi (gtk_pack il me semble).

J'ai du mal a imaginer qu'on puisse sortir un toolkit graphique au 3 millenaire sans ce type de fonctionnalite !

C'est bien, on progresse ! Plus que 10 ans a wxWidget pour rattrapper le retard sur les autres toolkits.


ok, je sors ----> []

Mouai ...

Posté par harbort1 () le 22/04/2005 à 17:39. (lien). Évalué à 6.

[...] découvrir ce fabuleux framework

... pour un framework qui copie les MFC ... bof bof !
Pour l'avoir essayé, j'ai pas trouvé ça génial ... le code final n'est pas super lisible et il reprend tous les mauvais côtés des MFC (dont les horribles tables pour associer un événement à une fonction/méthode).

En plus il cherche les problèmes en voulant être multi-système + multi-toolkit, en répétant en ça les erreur du tookit de Java 1.1 ! Pour rappel, pour ce toolkit, il fallait systématiquement tester l'interface graphique sur tous les sytèmes X tous les toolkits sous-jacents possibles pour être sûr que ce soit utilisable. En effet, les toolkits/systèmes ont souvent des comportements légèrement différents qu'il n'est pas possible d'abstraire totalement. Et c'est bien ce que j'ai pu observé pour des applis développées sous windows principalement et qui ne fonctionnaient pas correctement sous linux probablement pour des causes de petites différences entre les toolkits !

Pour un nouveau dév en C++, jamais je ne conseillerai ce framework là ! Qt est bien plus abouti et maintenant qu'il est disponible en GPL sur toutes les plateformes, je ne vois pas ce qui pourrait géner son adoption !

Sinon bien sûr, Gtk est aussi un très très bon toolkit (mais pas en C++), et en ce qui concerne Python l'export est fait de manière très intelligente !

Enfin, tout ça pour dire que vraiment je ne comprends pas l'engouement pour ce toolkit qui est de conception ancienne comparée à l'état de l'art en conception de toolkits (avec par exemple gtk ou Qt) et qui répète les erreurs du passé (comme c'est déjà trop souvent le cas en informatique).

et la commande pour compiler...

Posté par scls19fr (page perso, ) le 22/04/2005 à 18:59. (lien). Évalué à 7.

Quand on se donne la peine de fournir un code source, on dit aussi comment le compiler...

g++ hello.cc -o hello `wx-config --libs` `wx-config --cxxflags`


c'est bête mais pour donner l'envie de tester... c'est mieux


et pour éviter que ça gueule à la compil il faut aussi

_(...)

autour des chaînes de caractères (au moins à partir de la version 2.5... me semble-t-il)

wxString(..) ou un truc du genre marche aussi mais j'utilise _(...) ça ser aussi pour l'internationalisation (i18n)

Cette librairie est géniale

Posté par Victor STINNER (page perso, ) le 23/04/2005 à 13:27. (lien). Évalué à 4.

Je l'avais utilisé sur deux projets, et j'ai toujours été bien surpris. Le principal avantage étant de faire abstraction de l'OS qui est en dessous. Aujourd'hui, GTK+ fonctionne bien sous Windows, alors on se pose un peu moins la question de portabilité.

L'utilisation de la STL étant un truc prévu depuis 2 ou 3 ans. Je suis très content de voir que wxWidgets a enfin fait le bon choix. Pour information, ça n'avait pas été fait avant tout simplement parce les compilateurs gêraient plutôt mal les templates (base de la STL).

Pour info, il est possible de "charger" une interface depuis un fichier XML (extension XRC). Pour dessiner l'interface, on peut utiliser wxGlade (pas testé) ou wxDesigner (très bon, complet, mais payant et proprio).

Je trouve que la documentation est bien écrite.

Ah oui, il faut aussi noter que la librairie date de 1992 et est plus utilisée qu'on ne le pense. Elle est très complète.

@+ Haypo

Revenir en haut de page