GTK 3.96, sim tso tawm ntawm GTK 4, luam tawm

10 lub hlis tom qab ntawm yav dhau los xeem tso tawm hais tawm GTK 3.96, ib qho kev sim tshiab ntawm qhov kev tso tawm ruaj khov uas yuav los tom ntej ntawm 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. ntawm yuav tsum tau rov sau daim ntawv thov txhua rau lub hlis vim hloov API hauv GTK ceg tom ntej. Kom txog rau thaum GTK 4 tau ruaj khov, nws raug pom zoo tias cov ntawv thov muab rau cov neeg siv txuas ntxiv tsim los siv cov ceg. GTK 3.24.

ntsiab hloov hauv GTK 3.96:

  • Hauv API GSK (GTK Scene Kit), uas muab kev ua haujlwm ntawm cov duab nraaj ntawm OpenGL thiab Vulkan, ua haujlwm tau ua tiav ntawm qhov tsis raug, uas tau dhau los ua qhov yooj yim los txheeb xyuas ua tsaug rau qhov tshiab debugging cuab tam gtk4-node-editor, uas tso cai rau koj thauj khoom thiab tso saib cov rendering node nyob rau hauv ib tug serialized hom (tuaj yeem khaws cia hauv hom tshuaj ntsuam GTK tus neeg soj ntsuam), thiab kuj sib piv cov txiaj ntsig rendering thaum siv cov backends sib txawv;

    GTK 3.96, sim tso tawm ntawm GTK 4, luam tawm

  • 3D kev hloov pauv muaj peev xwm tau raug coj mus rau theem uas tso cai rau koj los tsim cov teebmeem animation xws li lub voj voog tig;

    GTK 3.96, sim tso tawm ntawm GTK 4, luam tawm

  • Siab sau dua tshiab Broadway GDK backend tsim los muab GTK lub tsev qiv ntawv tso tawm hauv lub vev xaib browser. Kev siv Broadway qub tsis haum rau cov txheej txheem rendering uas tau npaj tseg hauv GTK 4 (tshwj tsis yog cov khoom tso tawm mus rau qhov tsis muaj, tam sim no nws siv cov qauv raws li cov khoom siv, qhov chaw tso zis yog tsim los ntawm tsob ntoo ntawm kev ua haujlwm siab, ua tau zoo los ntawm GPU siv OpenGL thiab Vulkan).
    Qhov kev xaiv Broadway tshiab hloov pauv cov nodes rau hauv DOM nodes nrog CSS cov qauv rau kev ua haujlwm hauv qhov browser. Txhua lub xeev tshuaj ntsuam tshiab tau ua tiav raws li kev hloov pauv hauv DOM tsob ntoo txheeb ze rau lub xeev dhau los, uas txo qhov loj ntawm cov ntaub ntawv xa mus rau cov neeg siv khoom nyob deb. 3D kev hloov pauv thiab cov duab nraaj yog siv los ntawm CSS hloov cov cuab yeej;

  • GDK tseem siv APIs tsim nrog Wayland raws tu qauv hauv siab, thiab ntxuav X11-based APIs lossis txav lawv mus rau qhov sib cais X11 backend. Muaj kev vam meej hauv kev ua haujlwm kom txav deb ntawm kev siv cov me nyuam qhov chaw thiab kev sib koom ua ke thoob ntiaj teb. Kev them nyiaj yug rau GDK_SURFACE_SUBSURFACE raug tshem tawm ntawm GDK;
  • Refactoring ntawm txoj cai cuam tshuam nrog kev ua haujlwm Drag-and-Drop txuas ntxiv, suav nrog cov khoom sib cais GdkDrag thiab GdkDrop;
  • 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 tshwj xeeb, piv txwv li, hloov cov xwm txheej tawm, lub teeb liab "GdkSurface::render" yog npaj, es tsis txhob teeb tsa cov xwm txheej - "GdkSurface:: loj-hloov", es tsis txhob ua cov xwm txheej - "GdkSurface: :mapped”, es tsis txhob gdk_event_handler_set() - "GdkSurface::event";
  • GDK backend rau Wayland tau ntxiv kev txhawb nqa rau lub portal interface rau kev nkag mus rau GtkSettings chaw. Txhawm rau ua haujlwm nrog cov tswv yim, kev txhawb nqa rau cov ntawv nyeem-input-unstable-v3 raws tu qauv txuas ntxiv tau raug thov;
  • 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 teeb tsa ntawm thaj chaw pom. GtkLayoutManager hloov cov khoom me me hauv GTK ntim xws li GtkBox thiab GtkGrid. Ob peb tus thawj tswj layout npaj tau npaj: GtkBinLayout rau cov thawv yooj yim nrog ib tus menyuam lub ntsiab lus, GtkBoxLayout rau linearly aligned me nyuam cov ntsiab lus, GtkGridLayout rau aligning me nyuam cov ntsiab lus rau ib daim phiaj, GtkFixedLayout rau arbitrary positioning ntawm cov me nyuam cov ntsiab lus, Gtklatingallo ntsiab lus tus tuav;
  • Cov khoom siv rau pej xeem siv tau rau nplooj ntawv qhia txog cov ntsiab lus ntawm cov menyuam yaus tau ntxiv rau GtkAssistant, GtkStack thiab GtkNotebook widgets, uas tsis yog Layout ntsig txog menyuam cov khoom ntawm cov widgets no tau pauv mus. Txij li thaum tag nrho cov khoom me nyuam uas twb muaj lawm tau hloov mus rau cov khoom tsis tu ncua, cov khoom tsim, lossis hloov mus rau nplooj khoom, kev txhawb nqa rau cov khoom me nyuam raug tshem tawm tag nrho los ntawm GtkContainer;
  • Cov haujlwm tseem ceeb GtkEntry tau raug hloov mus rau GtkText widget tshiab, uas kuj suav nrog kev txhim kho GtkEditable hloov kho interface. Tag nrho cov ntaub ntawv uas twb muaj lawm input subclasses tau remade li GtkEditable siv raws li tus tshiab GtkText widget;
  • Ntxiv ib qho tshiab GtkPasswordEntry widget rau cov ntawv nkag lo lus zais;
  • GtkWidgets tau ntxiv lub peev xwm los hloov cov ntsiab lus me nyuam siv txoj hauv kev hloov pauv tau teev tseg ntawm CSS lossis gtk_widget_allocate sib cav rau GskTransform. Cov yam ntxwv tshwj xeeb twb tau thov hauv GtkFixed widget;
  • Cov npe tshiab tiam qauv tau ntxiv: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel thiab GtkSingleSelection. Nyob rau hauv lub neej yav tom ntej peb npaj yuav ntxiv kev txhawb nqa rau daim ntawv teev cov qauv rau GtkListView;
  • GtkBuilder tau ntxiv lub peev xwm los teeb tsa cov khoom hauv zos (inline), tsis yog siv cov kev sib txuas los ntawm tus cim;
  • Ntxiv cov lus txib rau gtk4-builder-lub cuab yeej los hloov UI cov ntaub ntawv los ntawm GTK 3 rau GTK 4;
  • Kev them nyiaj yug rau cov ntsiab lus tseem ceeb, tabular menus, thiab combo thawv tau raug txiav lawm. GtkInvisible widget tau raug tshem tawm.

    Tau qhov twg los: opennet.ru

Ntxiv ib saib