Veröffentlichung des grafischen Toolkits wxWidgets 3.2.0

9 Jahre nach der Veröffentlichung des 3.0-Zweigs wurde die erste Veröffentlichung eines neuen stabilen Zweigs des plattformübergreifenden Toolkits wxWidgets 3.2.0 vorgestellt, mit dem Sie grafische Schnittstellen für Linux, Windows, macOS, UNIX und mobile Plattformen erstellen können. Im Vergleich zum 3.0-Zweig gibt es auf API-Ebene eine Reihe von Inkompatibilitäten. Das Toolkit ist in C++ geschrieben und wird unter der kostenlosen wxWindows-Bibliothekslizenz vertrieben, die von der Open Source Foundation und der OSI-Organisation genehmigt wurde. Die Lizenz basiert auf der LGPL und zeichnet sich durch die Erlaubnis aus, eigene Bedingungen zur Verbreitung abgeleiteter Werke in binärer Form zu verwenden.

Neben der Entwicklung von Programmen in C++ bietet wxWidgets Bindungen für die gängigsten Programmiersprachen, darunter PHP, Python, Perl und Ruby. Im Gegensatz zu anderen Toolkits bietet wxWidgets einer Anwendung ein wirklich natives Erscheinungsbild für das Zielsystem, indem es System-APIs verwendet, anstatt die GUI nachzuahmen.

Wichtigste Neuerungen:

  • Eine neue experimentelle Portierung von wxQt wurde implementiert, die es wxWidgets ermöglicht, auf dem Qt-Framework zu arbeiten.
  • Der wxGTK-Port bietet volle Unterstützung für das Wayland-Protokoll.
  • Unterstützung für Bildschirme mit hoher Pixeldichte (High DPI) hinzugefügt. Es wurde die Möglichkeit hinzugefügt, verschiedenen Monitoren unterschiedliche DPIs zuzuweisen und DPI dynamisch zu ändern. Es wurde eine neue wxBitmapBundle-API vorgeschlagen, mit der Sie mehrere Versionen eines Bitmap-Bildes, die in unterschiedlichen Auflösungen dargestellt werden, als Ganzes bearbeiten können.
  • Es wurde ein neues Build-System basierend auf CMake vorgeschlagen. Dem Assembly-System wurde Unterstützung für neue Compiler (einschließlich MSVS 2022, g++ 12 und clang 14) und Betriebssysteme hinzugefügt.
  • Die OpenGL-Unterstützung wurde neu gestaltet, die Verwendung neuer OpenGL-Versionen (3.2+) wurde verbessert.
  • Unterstützung für LZMA-Komprimierung und ZIP 64-Dateien hinzugefügt.
  • Der Kompilierzeitschutz wurde verbessert, da gefährliche implizite Konvertierungen zwischen Zeichenfolgen vom Typ wxString und „char*“ deaktiviert werden können.
  • Ereignisunterstützung für Steuerungsgesten hinzugefügt, die mit der Maus gespielt werden.
  • Die Klassen wxFont und wxGraphicsContext haben jetzt die Möglichkeit, beim Definieren von Schriftgrößen und Stiftbreiten nicht ganzzahlige Werte anzugeben.
  • Die Klasse wxStaticBox implementiert die Möglichkeit, Fenstern beliebige Beschriftungen zuzuweisen.
  • Die wxWebRequest-API unterstützt jetzt HTTPS und HTTP/2.
  • Die wxGrid-Klasse hat Unterstützung für das Einfrieren von Spalten und Zeilen hinzugefügt.
  • Neue Klassen eingeführt: wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempFFile und wxUILocale.
  • Für alle neuen Klassen und einige bestehende Klassen wurden neue XRC-Handler implementiert.
  • Neue Methoden eingeführt: wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(), wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(), wxListBox::GetTop Item (), wxProcess::Activate(), wxTextEntry::ForceUpper(), wxStandardPaths::GetUserDir(), wxToolbook::EnablePage(), wxUIActionSimulator::Select().
  • An den Klassen wxBusyInfo, wxDataViewCtrl, wxNotificationMessage, wxStaticBox, wxStyledTextCtrl und wxUIActionSimulator wurden erhebliche Verbesserungen vorgenommen.
  • Die Unterstützung für die macOS-Plattform wurde verbessert, einschließlich der Möglichkeit, ein dunkles Design zu verwenden und Unterstützung für Geräte mit ARM-Prozessoren hinzuzufügen.
  • Es wurden Verbesserungen zur Unterstützung des C++11-Standards vorgenommen. Unterstützung für die Erstellung mit C++20-Compilern hinzugefügt.
  • Alle enthaltenen Bibliotheken von Drittanbietern wurden aktualisiert. Unterstützung für WebKit 2 und GStreamer 1.7 hinzugefügt.

Source: opennet.ru

Kommentar hinzufügen