I am trying to add a GtkImage to my main window *.ui file, which was made using the GNOME Builder project template.
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="3.20"/>
<template class="PodiumWindow" parent="GtkApplicationWindow">
<property name="default-width">600</property>
<property name="default-height">300</property>
<child type="titlebar">
<object class="GtkHeaderBar" id="headerBar">
<property name="visible">True</property>
<property name="show-close-button">True</property>
<property name="title">Podium</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="icon-name">open-menu-symbolic</property>
<property name="icon-size">1</property>
</object>
<object class="GtkLabel" id="label">
<property name="label">Ready your pencils!</property>
<property name="visible">True</property>
<attributes>
<attribute name="weight" value="bold"/>
<attribute name="scale" value="2"/>
</attributes>
</object>
</child>
</template>
</interface>
But the image does not appear in the window:
I checked with GTK+ Inspector (Ctrl+Shift+D) and could not see the GtkImage in the hierachy. Anyone knows what I am missing?
GtkWindow
is a subclass of GtkBin
, which means it can only have one child at a time.
So the image is added first, but removed again when adding the label.
To fix your issue, you need to add an intermediate container (like GtkGrid
or GtkBox
).