首页 > 解决方案 > 我在主窗口 UI 文件中添加了一个 gtk 小部件,但它没有显示

问题描述

我正在尝试将 GtkImage 添加到我的主窗口 *.ui 文件中,该文件是使用 GNOME Builder 项目模板制作的。

<?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>

但是图像没有出现在窗口中: 你好世界窗口

我检查了 GTK+ Inspector (Ctrl+Shift+D),在层次结构中看不到 GtkImage。有人知道我错过了什么吗?

标签: xmlgtk3gnomegtkbuildergnome-builder

解决方案


GtkWindow是 的子类GtkBin,这意味着它一次只能有一个孩子。

所以图像是先添加的,但在添加标签时再次删除。

要解决您的问题,您需要添加一个中间容器(如GtkGridGtkBox)。


推荐阅读