Paglabas ng wxWidgets 3.2.0 graphical toolkit

9 na taon pagkatapos ng paglabas ng 3.0 branch, ipinakita ang unang release ng isang bagong stable na branch ng cross-platform toolkit na wxWidgets 3.2.0, na nagbibigay-daan sa iyong lumikha ng mga graphical na interface para sa Linux, Windows, macOS, UNIX at mga mobile platform. Kung ikukumpara sa 3.0 branch, mayroong ilang mga hindi pagkakatugma sa antas ng API. Ang toolkit ay nakasulat sa C++ at ipinamamahagi sa ilalim ng libreng wxWindows Library License, na inaprubahan ng Open Source Foundation at ng organisasyon ng OSI. Ang lisensya ay batay sa LGPL at nakikilala sa pamamagitan ng pahintulot nito na gamitin ang sarili nitong mga termino upang ipamahagi ang mga derivative na gawa sa binary form.

Bilang karagdagan sa pagbuo ng mga programa sa C++, ang wxWidgets ay nagbibigay ng mga binding para sa pinakasikat na mga programming language, kabilang ang PHP, Python, Perl at Ruby. Hindi tulad ng iba pang mga toolkit, ang wxWidgets ay nagbibigay ng isang application na may tunay na katutubong hitsura at pakiramdam para sa target na sistema sa pamamagitan ng paggamit ng mga API ng system sa halip na gayahin ang GUI.

Mga pangunahing inobasyon:

  • Isang bagong eksperimental na port ng wxQt ang ipinatupad, na nagpapahintulot sa wxWidgets na gumana sa ibabaw ng Qt framework.
  • Ang wxGTK port ay nagbibigay ng buong suporta para sa Wayland protocol.
  • Nagdagdag ng suporta para sa mga screen na may mataas na pixel density (Mataas na DPI). Nagdagdag ng kakayahang magtalaga ng iba't ibang DPI para sa iba't ibang monitor at dynamic na baguhin ang DPI. Ang isang bagong wxBitmapBundle API ay iminungkahi, na nagbibigay-daan sa iyong manipulahin ang ilang mga bersyon ng isang bitmap na imahe, na ipinakita sa iba't ibang mga resolusyon, bilang isang buo.
  • Ang isang bagong build system batay sa CMake ay iminungkahi. Suporta para sa mga bagong compiler (kabilang ang MSVS 2022, g++ 12 at clang 14) at mga operating system ay idinagdag sa assembly system.
  • Ang suporta sa OpenGL ay muling idinisenyo, ang paggamit ng mga bagong bersyon ng OpenGL (3.2+) ay napabuti.
  • Nagdagdag ng suporta para sa LZMA compression at ZIP 64 file.
  • Ang proteksyon sa oras ng pag-compile ay pinahusay, salamat sa kakayahang i-disable ang mga mapanganib na implicit na conversion sa pagitan ng mga string ng mga uri ng wxString at "char*".
  • Nagdagdag ng suporta sa kaganapan para sa mga control gesture na nilalaro gamit ang mouse.
  • Ang mga klase ng wxFont at wxGraphicsContext ay mayroon na ngayong kakayahang tumukoy ng mga hindi integer na halaga kapag tinutukoy ang mga laki ng font at lapad ng panulat.
  • Ang klase ng wxStaticBox ay nagpapatupad ng kakayahang magtalaga ng mga arbitrary na label sa mga bintana.
  • Sinusuportahan na ngayon ng wxWebRequest API ang HTTPS at HTTP/2.
  • Ang klase ng wxGrid ay nagdagdag ng suporta para sa mga nagyeyelong column at row.
  • Ipinakilala ang mga bagong klase: wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempUIFFile at w.
  • Ang mga bagong tagapangasiwa ng XRC ay ipinatupad para sa lahat ng mga bagong klase at ilang mga kasalukuyang klase.
  • Mga bagong pamamaraan na ipinakilala: wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(), wxHtmlEasyPrinting:(SetPromptEasyPrinting:(SetPromptXMode) wxListBox::Kunin TopItem (), wxProcess::Activate(), wxTextEntry::ForceUpper(), wxStandardPaths::GetUserDir(), wxToolbook::EnablePage(), wxUIActionSimulator::Select().
  • Ang mga makabuluhang pagpapabuti ay ginawa sa mga klase ng wxBusyInfo, wxDataViewCtrl, wxNotificationMessage, wxStaticBox, wxStyledTextCtrl, at wxUIActionSimulator.
  • Ang suporta para sa macOS platform ay napabuti, kabilang ang kakayahang gumamit ng madilim na tema at nagdagdag ng suporta para sa mga device na nagpapatakbo ng mga ARM processor.
  • Ang mga pagpapabuti ay ginawa upang suportahan ang pamantayan ng C++11. Nagdagdag ng suporta para sa pagbuo gamit ang C++20 compiler.
  • Na-update ang lahat ng kasamang third-party na aklatan. Nagdagdag ng suporta para sa WebKit 2 at GStreamer 1.7.

Pinagmulan: opennet.ru

Magdagdag ng komento