freetime plattformübergreifende Toolkit , mit dem grafische Benutzeroberflächen für Linux, Windows, macOS, UNIX und mobile Plattformen erstellt werden können. wxWidgets 3.1 wird als Entwicklungszweig für Entwickler positioniert, in dem neue Funktionen für die nächste stabile Version 3.2.0 entwickelt werden. Im Vergleich zum Zweig 3.0 gibt es eine Reihe von Inkompatibilitäten auf der API-Ebene, und die Unveränderlichkeit des ABI zwischen den Zwischenversionen 3.1.x wird nicht garantiert.
Das Toolkit ist in C++ geschrieben und wird unter einer freien Lizenz vertrieben , die von der Gemeinnützigen Stiftung und der OSI-Organisation genehmigt wurde. Die Lizenz basiert auf der LGPL und erlaubt die Verwendung eigener Bedingungen für die Verbreitung abgeleiteter Arbeiten in binärer Form. Neben der Entwicklung von Programmen in C/C++ bietet wxWidgets Bindungen für die meisten gängigen Programmiersprachen, einschließlich , , und . Im Gegensatz zu anderen Toolkits bietet wxWidgets der Anwendung ein wirklich natives Aussehen und Interaktionsmethoden für das Zielbetriebssystem, dank der Verwendung von systemeigenen APIs und nicht von GUI-Simulationen.
Hauptneuheiten:
- Ein neues Build-System auf Basis von CMake. Dem Build-System wurde Unterstützung für neue Compiler (MSVC 2019, g++ 10) und Betriebssysteme (macOS 10.14 und macOS 11 für ARM) hinzugefügt;
- Ein neuer experimenteller wxQt-Port;
- Die Unterstützung für OpenGL wurde überarbeitet, die Nutzung neuerer OpenGL-Versionen (3.2+) verbessert;
- Die Unterstützung für Ereignisse zur Steuerung von Gesten, die mit der Maus ausgeführt werden, wurde hinzugefügt;
- In wxFont und wxGraphicsContext wurde die Möglichkeit hinzugefügt, nicht-ganzzahlige Werte bei der Festlegung der Schriftgrößen und der Breite des Lichtstifts anzugeben;
- In wxStaticBox wurde die Möglichkeit implementiert, beliebige Beschriftungen für Fenster zuzuweisen;
- Die Unterstützung für hochauflösende Bildschirme (High DPI) wurde verbessert;
- Die Unterstützung für die LZMA-Komprimierung und ZIP 64-Dateien wurde hinzugefügt;
- Neue Klassen wurden eingeführt: wxActivityIndicator, wxAddRemoveCtrl,
wxAppProgressIndicator, wxNativeWindow, wxPowerResourceBlocker,
wxSecretStore und wxTempFFile; - Die Unterstützung zum Einfrieren von Spalten und Zeilen in wxGrid wurde hinzugefügt;
- Neue Methoden wurden eingeführt: wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::
GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(),
wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(),
wxListBox::GetTopItem(), wxProcess::Activate(), wxTextEntry::ForceUpper(), wxStandardPaths::GetUserDir(),
wxToolbook::EnablePage(), wxUIActionSimulator::Select(); - Es wurden bedeutende Verbesserungen an den Klassen wxBusyInfo, wxDataViewCtrl,
wxNotificationMessage, wxStaticBox, wxStyledTextCtrl und wxUIActionSimulator vorgenommen; - Die Sicherheit während des Kompilierungsprozesses wurde verbessert, da gefährliche implizite Umwandlungen zwischen wxString und «char*» deaktiviert werden können.
- Alle im Paket enthaltenen Drittanbieter-Bibliotheken wurden aktualisiert. Unterstützung für WebKit 2 und GStreamer 1.7 hinzugefügt;
- Es wurden Verbesserungen in Bezug auf die Unterstützung des C++11-Standards vorgenommen. Die Unterstützung für C++20-Compiler wurde hinzugefügt.
- Eine große Anzahl von Korrekturen in den Ports wxGTK3 und wxOSX/Cocoa.
Quelle: opennet.ru
