Kev tso tawm ntawm GTK 3.99.0 cim qhov ua tiav ntawm kev ua haujlwm tau npaj rau GTK 4

luam tawm kev sim zaum kawg tso tawm lub moj khaum GTK 3.99.0, uas siv tag nrho cov yam ntxwv uas tau npaj rau GTK 4. GTK 4 ceg tau tsim los ua ib feem ntawm txoj kev txhim kho tshiab uas sim muab cov neeg tsim daim ntawv thov nrog API ruaj khov thiab txhawb nqa rau ntau xyoo uas tuaj yeem siv yam tsis muaj kev ntshai. rov sau daim ntawv thov txhua rau lub hlis vim tias rau API hloov pauv hauv GTK ceg tom ntej. GTK 4 tau npaj yuav tso tawm ua ntej xyoo kawg.

Ntawm qhov ntau tseem ceeb kev hloov Π² GTK 4 koj tuaj yeem nco ntsoov:

  • Txoj kev rau tso tawm cov ntsiab lus raws li kev txwv (kev txwv layout), nyob rau hauv qhov chaw thiab qhov luaj li cas ntawm cov menyuam cov ntsiab lus yog txiav txim siab raws li qhov kev ncua deb ntawm ciam teb thiab qhov loj ntawm lwm cov ntsiab lus.
  • Tus renderer raws li Vulkan cov duab API uas siv cov duab ntxoov ntxoo rau ntau cov peev txheej CSS siv hauv GTK widgets.
  • Kev koom ua ke GSK (GTK Scene Kit) nrog lub peev xwm los ua cov duab nraaj ntawm OpenGL thiab Vulkan.
  • Lub koom haum ntawm rendering tau raug kho dua - es tsis txhob tso zis rau ib tug tsis, ib tug qauv raws li render nodes yog tam sim no siv, nyob rau hauv uas cov zis yog teem nyob rau hauv daim ntawv ntawm ib tug ntoo ntawm high-level kev khiav hauj lwm, ua tau zoo los ntawm GPU siv OpenGL. thiab Vulkan.
  • Nyiaj txiag rau kev hloov pauv hloov pauv ntawm cov tswv yim tsom.
  • Ib qho kev hloov kho tshiab tsim qauv xa tawm uas tshem tawm qhov xav tau rau subwindows thaum routing input txheej xwm. Qhov yuav tsum tau siv tus qauv tshiab yog txuam nrog kev siv ntau dua ntawm cov teebmeem animation, qhov kev ua haujlwm uas yuav tsum tau ua yam tsis tau hloov qhov kev teeb tsa ntawm cov ntsiab lus pom thiab, raws li, tsis muaj lub qhov rais subwindow.
  • GDK API tau raug kho dua tshiab nrog lub qhov muag siv Wayland raws tu qauv thiab cov ntsiab lus muaj feem xyuam. X11 thiab Wayland-based nta tau hloov mus rau cais backends.
  • Kev ntxuav loj ntawm API tau ua tiav, suav nrog kev tshem tawm ntawm GtkMenu, GtkMenuBar thiab GtkToolbar cov chav kawm, nyiam GMenu thiab cov kev xaiv raws li cov ntawv qhia popover.
  • GtkTextView thiab lwm cov tswv yim widgets muaj ib pawg ua-nyob rau hauv undo pawg.
  • Ntxiv ib chav kawm GtkNative tshiab rau cov widgets uas muaj lawv tus kheej cov duab saum toj kawg nkaus thiab tuaj yeem ua haujlwm sib cais ntawm thawj qib, yam tsis tau khi rau niam txiv widgets.
  • Cov widgets tshiab tau ntxiv, suav nrog GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView, thiab Emoji zaub widget.
  • Rau txoj kev loj hlob ntawm widgets, ib qho khoom tshiab GtkLayoutManager tau qhia nrog kev siv lub kaw lus rau kev tswj cov txheej txheem ntawm cov ntsiab lus nyob ntawm qhov loj ntawm thaj chaw pom. GtkLayoutManager hloov cov khoom me me hauv GTK ntim xws li GtkBox thiab GtkGrid.
  • Kev tuav cov xwm txheej tau yooj yim thiab tam sim no tsuas yog siv rau kev tawm tswv yim. Cov xwm txheej ntxiv yog hloov nrog cov cim cais, piv txwv li, tsis yog cov xwm txheej tso tawm, "GdkSurface::render" teeb liab tau thov, thiab hloov cov xwm txheej, "GdkSurface:: hloov loj" yog muaj.
  • Ntxiv ib txheej tshiab abstraction GdkPaintable, sawv cev rau cov khoom uas tuaj yeem kos txhua qhov chaw ntawm txhua qhov loj me, tsis tas yuav txheeb cov txheej txheej.
  • Broadway backend tau raug sau dua tshiab kom tso cai rau cov khoom tso tawm ntawm GTK lub tsev qiv ntawv yuav tsum tau muab tso rau hauv lub web browser qhov rai.
  • API cuam tshuam nrog kev ua haujlwm Drag-and-Drop tau raug kho dua tshiab, suav nrog cov khoom sib cais GdkDrag thiab GdkDrop.

Kev txhim kho piv rau qhov kev sim tso tawm dhau los:

  • Cov kev siv qub ntawm Accessibility API rau cov neeg xiam oob khab tau raug tshem tawm, hloov los ntawm ib qho tshiab raws li qhov tshwj xeeb Aria thiab GtkAccessible widget.
  • Ntxiv kev txhawb nqa rau cov ntawv kho tau (GtkEditableLabel).
  • Daim ntawv teev cov qauv tshiab tau raug npaj rau kev nthuav qhia bookmarks (GtkBookmarkList), cov hlua (GtkStringList) thiab xaiv blocks (GtkBitset).
  • GtkTreeView widget muaj peev xwm hloov kho cov hlwb.
  • Kev siv ntawm scrolling tau raug txhim kho hauv GtkGridView thiab GtkListView, kev txhawb nqa rau nws pib-scrolling thiab nws pib-expanding tau ntxiv.
  • GtkWidget ua kom nrawm nrawm ntawm kev ua haujlwm ntau yam.
  • Ntxiv kev txhawb nqa rau incremental scrolling thiab filtering rau GtkFilterListModel thiab GtkSortListModel.
  • Tus neeg soj ntsuam tau ntxiv kev txhawb nqa rau kev tshuaj xyuas cov qauv ua qauv thiab muaj peev xwm mus ncaj qha ntawm cov khoom.
  • Hauv GDK, scrolling keeb kwm tau txais kev cawmdim, GdkDevice API tau raug ntxuav, thiab kev sib cais ntawm cov khoom siv rau tus tswv thiab qhev tau raug tso tseg.
  • Ntxiv GDK backend tshiab rau macOS.
  • Ib qho tshiab GDK rendering backend raws li lub, interlayers txhais OpenGL ES hu rau OpenGL, Direct3D 9/11, Desktop GL thiab Vulkan.

Tau qhov twg los: opennet.ru

Ntxiv ib saib