GTK 4 Released
Written by Kay Ewbank   
Thursday, 07 January 2021

A major new version of GTK has been released with improvements to the internal design and an improved application programming interface (API). Support has been added for OpenGL and Vulkan hardware drawing for the widgets with the aim of maximizing performance while minimizing CPU load.

GTK is a toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK is suitable for projects ranging from small one-off tools to complete application suites.

gtk

GTK is the core of the GNOME development platform, but it can also be used to write applications for other Linux environments, as well as applications targeting Microsoft Windows and Apple macOS. Its compact nature and modular design make it suitable for use on devices with restricted resources like the Raspberry Pi family.

The new release sees improvements to areas including event controllers, layout managers, render nodes, media playback, scalable lists, shaders and accessibility.

Some of the most obvious changes to GTK version 4 affect custom widgets. The developers say that a general trend in the API is that “everything is a widget.”  Event handling has been added to widgets, taking over from the signals previously used to handle events such as button and keypresses.  All of these signals are gone in GTK 4, and instead you are expected to add event controllers to your widget, and listen to their signals.

The way widgets handle drawing has been updated, partially due to the new targeting of GL / Vulkan instead of cairo. As part of this switch, GTK has moved from an immediate mode rendering model to a retained mode one.  GTK 4 has also made it easier for GTK apps to show animations; be that a programmatic animation, a webm file or a live stream.

Support has also been added for layout managers. These wrap your child widgets in their own “layout child” objects, which can have properties that affect the layout. Previously, if you wanted to set up a complex object such as a grid, you'd need to set up a custom widget to arrange the child widgets as required. GTK 4 makes this more convenient with a layout manager. GTK comes with a number of predefined layout managers, such as GtkBoxLayout, GtkCenterLayout, and GtkGridLayout among others.

One major improvement is the addition of new list and grid widgets for handling scalable lists of data.

In GTK 3, listbox and floxbox containers were added for displaying the data in lists, but these generated a widget for each data item, making them difficult to use for large scale lists.This has been addressed and the replacement widgets should be able to handle unlimited numbers of items well. The developers say GTK 4 comes with a rich assortment of GListModel implementations, from various ways to combine or modify existing models to filtering and sorting.

GTK 4 is available now.

gtk

More Information

GTK 4 

Related Articles

Applying C - Framebuffer Graphics

GNOME's Wonderful Year

Smalltalk-Inspired Pharo 8.0 Released  

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Call For Code 2024 Focuses On Generative AI
01/03/2024

This year's Call for Code challenge has been launched with a theme of the use of generative AI technology for solutions that aim to improve equitable access to resources and opportunities for historic [ ... ]



We Built A Software Engineer
20/03/2024

One of the most worrying things about being a programmer today is the threat from AI. It has gone so far that NVIDA CEO Jensen Huang proclaims that you really shouldn't start training as a programmer  [ ... ]


More News

raspberry pi books

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Friday, 08 January 2021 )