uitgave van een cross-platform toolkit , waarmee grafische interfaces kunnen worden gemaakt voor Linux, Windows, macOS, UNIX en mobiele platforms. wxWidgets 3.1 wordt gepositioneerd als een tak voor ontwikkelaars, waarin nieuwe mogelijkheden worden ontwikkeld voor de volgende stabiele release 3.2.0. In vergelijking met de tak 3.0 zijn er verschillende incompatibiliteiten op API-niveau en wordt de consistentie van ABI tussen tussenliggende releases 3.1.x niet gegarandeerd.
De toolkit is geschreven in C++ en wordt verspreid onder een vrije licentie , goedgekeurd door de Free Software Foundation en de OSI-organisatie. De licentie is gebaseerd op LGPL en verschilt door het toestaan van eigen voorwaarden voor het verspreiden van afgeleide werken in binaire vorm. Naast de ontwikkeling van programma's in C/C++ biedt wxWidgets bindingen voor de meeste populaire programmeertalen, waaronder , , en . In tegenstelling tot andere toolkits biedt wxWidgets een echt native uiterlijk en interactiemethoden voor de applicatie, dankzij het gebruik van systeem-API's in plaats van GUI-emulatie.
Belangrijkste vernieuwingen:
- Een nieuw build-systeem gebaseerd op CMake. Het build-systeem is uitgebreid met ondersteuning voor nieuwe compilers (MSVC 2019, g++ 10) en besturingssystemen (macOS 10.14 en macOS 11 voor ARM);
- Een nieuwe experimentele wxQt-portal;
- De ondersteuning voor OpenGL is herzien, met verbeterd gebruik van nieuwe versies van OpenGL (3.2+);
- Ondersteuning voor gebaargebaseerde gebeurtenissen die met de muis worden uitgevoerd, is toegevoegd;
- In wxFont en wxGraphicsContext is het mogelijk gemaakt om niet-gehele waarden op te geven bij het bepalen van lettergrootte en breedte van een penseel;
- In wxStaticBox is de mogelijkheid geĆÆmplementeerd om willekeurige labels aan vensters toe te wijzen;
- Verbeterde ondersteuning voor schermen met een hoge pixel-densiteit (High DPI);
- Ondersteuning voor LZMA-compressie en ZIP 64-bestanden is toegevoegd;
- Nieuwe klassen geĆÆntroduceerd: wxActivityIndicator, wxAddRemoveCtrl,
wxAppProgressIndicator, wxNativeWindow, wxPowerResourceBlocker,
wxSecretStore en wxTempFFile; - Ondersteuning voor het vastzetten van kolommen en rijen in wxGrid is toegevoegd;
- Nieuwe methoden geĆÆntroduceerd: wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::
GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(),
wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(),
wxListBox::GetTopItem(), wxProcess::Activate(), wxTextEntry::ForceUpper(), wxStandardPaths::GetUserDir(),
wxToolbook::EnablePage(), wxUIActionSimulator::Select(); - Er zijn aanzienlijke verbeteringen aangebracht in de klassen wxBusyInfo, wxDataViewCtrl,
wxNotificationMessage, wxStaticBox, wxStyledTextCtrl en wxUIActionSimulator; - De beveiliging tijdens de compilatiefase is verbeterd door de mogelijkheid om gevaarlijke impliciete conversies tussen strings met types wxString en 'char*' uit te schakelen.
- Alle bijgeleverde externe bibliotheken zijn bijgewerkt. Ondersteuning voor WebKit 2 en GStreamer 1.7 is toegevoegd.
- Er zijn verbeteringen aangebracht met betrekking tot de ondersteuning van de C++11-standaard. Ondersteuning voor compilatie met C++20-compiler is toegevoegd.
- Een groot aantal correcties in de wxGTK3 en wxOSX/Cocoa ports.
Bron: opennet.ru
