Skip to content


GTK+ widgets, being built on the GObject framework, have properties. These are key/value pairs that can be get and set generically. This package uses OverloadedLabels to declare properties and their values for GTK+ widgets. There are many properties available for GTK+ widgets. To find them, use the gi-gtk documentation. Each widget module lists its properties in the bottom of the Haddock page.

Properties in the Attributes List

In gi-gtk-declarative, the list passed to widgets is not a list of properties, but a list of attributes. The attributes list include property declarations, events, and CSS classes. To declare a property and a value in the attributes list, we use the (:=) operator.

Here we construct a button with a specific text label:

widget Button [#label := "Click Here"]

In the following example we declare a ScrolledWindow, and set the horizontal scroll bar policy to automatically decide whether the scroll bar should be visible:

bin ScrolledWindow [ #hscrollbarPolicy := PolicyTypeAutomatic ]

As a final example, we declare a ListBox with the multiple selection mode enabled:

container ListBox [ #selectionMode := SelectionModeMultiple ]