IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La version 3.2 de wxWidgets, une bibliothèque C++ qui permet de créer des applications multiplateformes, est disponible avec le support de Wayland
Et la prise en charge de nouveaux compilateurs

Le , par Bill Fassinou

12PARTAGES

30  0 
La version 3.2 de wxWidgets a été publiée la semaine dernière avec des améliorations majeures. wxWidgets 3.2 apporte des fonctionnalités telles que la prise en charge de l'affiche HiDPI (High Dots Per Inch), le support du mode sombre natif sur les versions modernes de macOS, ainsi que la prise en charge de macOS sur Arm, de HTTPS et HTTP/2 pour wxWebRequest, de Wayland, etc. La nouvelle version de la bibliothèque introduit également un port wxQt expérimental, de nouvelles classes, des améliorations pour les classes existantes et met à jour les bibliothèques tierces.

wxWidgets est une bibliothèque C++ qui permet aux développeurs de créer des applications pour Windows, macOS, Linux et d'autres plateformes avec une seule base de code. Elle possède des méthodes pour la liaison avec des langages populaires tels que Python, Perl, Ruby et plusieurs autres langages. wxWidgets donne aux applications un aspect et une sensation véritablement natifs, car elle utilise l'API native de la plateforme plutôt que d'émuler l'interface graphique. wxWidgets est une bibliothèque libre et open source utilisée par des logiciels populaires comme Audacity, FileZilla, KiCad, BitTorrent et de nombreux autres programmes.

La bibliothèque graphique wxWidgets contient un grand nombre de classes et de méthodes que le programmeur peut utiliser et personnaliser. Les applications affichent généralement des fenêtres contenant des contrôles standard, dessinant éventuellement des images et des graphiques spécialisés et répondant aux entrées de la souris, du clavier ou d'autres sources. Elles peuvent également communiquer avec d'autres processus ou piloter d'autres programmes. En d'autres termes, wxWidgets permet aux programmeurs d'écrire relativement facilement une application qui fait toutes les choses habituelles des applications modernes.



Bien que wxWidgets soit souvent considérée comme une boîte à outils de développement d'interface graphique, les auteurs estiment qu'il est bien plus que cela et qu'il possède des fonctionnalités utiles pour de nombreux aspects du développement d'applications. Cela doit être le cas, car l'ensemble d'une application wxWidgets doit être portable sur différentes plateformes, et pas seulement la partie GUI. En outre, wxWidgets fournit des classes pour les fichiers et les flux, les threads multiples, les paramètres d'application, la communication interprocessus, l'aide en ligne, l'accès aux bases de données, et bien plus encore.

L'équipe de développement de la bibliothèque a récemment publié wxWidgets 3.2. Cette version est l'aboutissement de nombreuses années de développement depuis la dernière version stable 3.0. Elle contient plus de 15 000 commits de plus de 400 contributeurs uniques (dont plus de 200 avec des contributions multiples). « Après presque 9 ans depuis le début de la dernière série de versions stables de wxWidgets, la première version de la nouvelle série stable 3.2 est enfin disponible sur GitHub », a annoncé l'équipe. Voici un résumé des principales nouveautés de wxWidgets 3.2 :

  • améliorations du système de construction : prise en charge de nouveaux compilateurs (y compris MSVS 2022, g++ 12, clang 14) avec une manière encore plus simple d'utiliser wxWidgets à partir de MSVS, avec le fichier wxwidgets.props, ainsi qu'un système de construction CMake entièrement nouveau ;
  • prise en charge du mode sombre natif sous macOS 10.14 et plus, prise en charge du matériel ARM et des versions de macOS jusqu'à 13 ;
  • prise en charge l'affichage HiDPI avec la nouvelle API basée sur wxBitmapBundle, mais presque parfaitement rétrocompatible, y compris le DPI par moniteur et les changements dynamiques de DPI ;
  • prise en charge de HTTPS et HTTP/2 avec wxWebRequest et ses équivalents ;
  • prise en charge du gel des lignes/colonnes dans wxGrid ;
  • prise en charge des événements liés aux gestes de la souris (projet GSoC 2017) ;
  • prise en charge des tailles de police non entières et poids de police arbitraires dans wxFont ;
  • prise en charge des largeurs de stylo fractionnaires dans wxGraphicsContext ;
  • prise en charge des fenêtres d'étiquettes arbitraires dans wxStaticBox ;
  • prise en charge du balisage dans les éléments de texte de wxDataViewCtrl ;
  • prise en charge des fichiers ZIP 64 ;
  • prise en charge de la compression LZMA ;
  • prise en charge de l'accessibilité nettement améliorée sous MSW ;
  • nouvelle implémentation de wxWebView basée sur Edge ;
  • prise en charge de la vérification orthographique native dans wxTextCtrl ;
  • nouveau wxRegEx basé sur PCRE ;
  • nouvelles classes :
    • wxActivityIndicator ;
    • wxAddRemoveCtrl ;
    • wxAppProgressIndicator ;
    • wxBitmapBundle ;
    • wxNativeWindow ;
    • wxPersistentComboBox ;
    • wxPowerResourceBlocker ;
    • wxSecretStore ;
    • wxTempFFile ;
    • wxUILocale
    • de nombreuses nouvelles fonctionnalités dans les classes existantes.

  • nouveaux gestionnaires XRC pour toutes les nouvelles classes et certaines des classes existantes ;
  • améliorations significatives de : wxBusyInfo, wxDataViewCtrl, wxDirDialog, wxGrid, wxNotificationMessage, wxSpinCtrl, wxStaticBox, wxStyledTextCtrl, wxUIActionSimulator ;
  • amélioration de la sécurité à la compilation avec la possibilité de désactiver les conversions implicites dangereuses entre les chaînes wxString et char* ;
  • dernières versions de toutes les bibliothèques tierces fournies, y compris tous les correctifs de sécurité et le support de WebKit 2 et GStreamer 1.7 sous Unix ;
  • un meilleur support de Wayland, même s'il est encore perfectible, dans wxGTK ;
  • support OpenGL remanié et mieux adapté à l'OpenGL moderne (3.2+) ;
  • amélioration du support de C++11 et plus, wxWidgets peut être construit avec des compilateurs C++20 ;
  • nouveau portage expérimental de wxQt ;
  • de nombreuses corrections de bogues.


Une différence clé entre wxWidgets et Qt ou GTK est que wxWidgets utilise des contrôles natifs pour créer l'interface utilisateur, contrairement à Qt ou GTK qui dessinent tout eux-mêmes. Qt semble imiter une sensation native, mais wxWidgets fournit une véritable interface utilisateur native.

Source : wxWidgets 3.2

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous des nouvelles fonctionnalités de wxWidgets 3.2 ?
Quelle bibliothèque utilisez-vous entre wxWidgets et Qt ? Quelle comparaison faites-vous entre les deux ?

Voir aussi

GCC 12 apportera de nouvelles fonctionnalités C++, des améliorations et les corrections de bogues, annoncée pour avril 2022

Intel achève l'adoption de LLVM et mettra fin aux mises à jour des compilateurs C/C++ classiques, le compilateur Intel C/C++ basé sur LLVM présente un avantage de 41 % par rapport à gcc

JetBrains dévoile la feuille de route de CLion 2022.2 : un aperçu de ce qui vous attend dans la prochaine version majeure de l'EDI C/C++ multiplateforme

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de d_d_v
Membre éprouvé https://www.developpez.com
Le 12/07/2022 à 9:34
J'ai utilisé WxWidgets un temps: ça marchait à peu près mais avec beaucoup de dysfonctionnements dès qu'on voulait faire des affichages un peu évolués, des problèmes de rafraîchissement entre autres. Au final, on était passé à Qt qui avait lui même d'autres problèmes, mais un peu moins
J'ai l'impression que les frameworks UI n'ont vraiment pas évolué depuis plus de 20 ans (!). Il n'y avait que l'API graphique intégré à l'OS BeOS que je trouvais génial et bien foutu.
2  0 
Avatar de archqt
Membre émérite https://www.developpez.com
Le 12/07/2022 à 11:02
J'ai utilisé wxWidgets mais j'ai arrêté il y a plus de 10ans quand Qt est passé avec la licence LGPL. Et y a pas photo Qt est quand même au dessus de wxWidgets.

Ce qui lui manque ?
  • un langage de description d'UI plus simple type QML
  • un portage vers Android/iOS
  • un système de gestions des événements plus simples, moins "Win32", les BEGIN_EVENT...c'est bien mais bon (je sais on peut faire autrement) et si possible sans devoir faire des héritages c'est mieux
  • le système de designer était pas "ouf" de mémoire
  • il faudrait abonner la LGPL et passer en MIT, BSD...


Bref c'est plein de petites choses qui font que beaucoup de projets sont passés de wxWidgets à Qt (vlc, wireshark, Gcompris...). C'est dommage car ils n'étaient pas en retard.

Maintenant Qt est cher en embarqué (même si on peut utiliser la LGPL mais moins facilement), et du coup je commence à regarder flutter.

Purebasic ? j'ai commencé le basic y a 37ans, je ne vais pas y revenir :-), même si peut être que le produit est très bon (qu'ils rajoutent d'autres langages )
2  0 
Avatar de
https://www.developpez.com
Le 12/07/2022 à 8:16
J'avais essayé wxWidgets en son temps, c'était un peu ardu et j'ai préféré QT, car QT ne fait pas que des IHM, il propose d'autres choses. Bref, QT est un framework plus complet. Seuls inconvénients, il faut toujours déployer les librairie de framework et son coût un peu top élevé pour de petites structures (oui, il y a la version opens source).

Pour moi, je le dis et le redis, à ce niveau (framework et gui) la référence est Purebasic, c'est pour moi le modèle à suivre : très complet, très léger et très facile à déployer. C'est ce que j'ai fini par choisir (j'ai abandonné Delphi et Qt pour Purebasic). Ce serait bien que d'autres sociétés/communautés s'en inspire pour créer ce genre de librairie pour d'autres langages.

wxWidgets, oui, mais ça fait quand-même très XXe siècle, non ?
2  1 
Avatar de dragonjoker59
Expert éminent sénior https://www.developpez.com
Le 13/07/2022 à 15:00
Ben... Vu que c'est du rendu natif, si les screenshots sont faits sous Windows XP, ça va effectivement sembler vieux...

De mon côté, ça ressemble plutôt à ça (après, je suis pas designer de GUI non plus, donc ça pourra paraître moche à certains)

1  0 
Avatar de AoCannaille
Expert confirmé https://www.developpez.com
Le 13/07/2022 à 13:44
Citation Envoyé par Ehma Voir le message
wxWidgets, oui, mais ça fait quand-même très XXe siècle, non ?
C'est clair que quand on parcoure les screenshot, ça fait prendre un coup de vieux
0  0