如何使用gtk4创建工具栏?

问题描述 投票:0回答:1

我正在尝试在标题栏下方创建一个工具栏来容纳一些按钮。我应该如何继续使用 GtkBox 而不是 GTK4 中已弃用的 GtkToolbar 创建工具栏?

我尝试在标题栏下创建一个子项,但它不显示任何内容。网上没有任何信息:(

 <child type="titlebar">
      <object class="GtkHeaderBar" id="header">
      <!-- some children that includes title and some buttons -->

        </object>
      </object>
    </child> 

   <!-- How to create a horizontal toolbar that will hold some button right underneath the header bar? -->
   <child type="toolbar">
      <object class="GtkBox" id="toolbar">

      </object>

    </child>
header toolbar gtk4
1个回答
0
投票

工具栏基本上是一个具有“工具栏”样式的 Gtk.Box。它必须作为窗口的子窗口插入,而不是作为标题栏的子窗口,并记住一个窗口只能有一个子窗口。下面是一个简单的例子。

<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <requires lib="gtk" version="4.0"/>
  <object class="GtkWindow" id="window">
    <property name="default-width">800</property>
    <property name="default-height">600</property>
    <property name="title" translatable="true">My App</property>
    <property name="titlebar">
      <object class="GtkHeaderBar">
        <child type="end">
          <object class="GtkMenuButton" id="button_menu">
            <property name="icon-name">open-menu-symbolic</property>
            <property name="primary">true</property>
          </object>
        </child>
      </object>
    </property>
    <child>
      <object class="GtkBox">
        <property name="orientation">1</property>
        <child>
          <object class="GtkBox">
            <style>
              <class name="toolbar"/>
            </style>
            <property name="hexpand">true</property>
            <property name="halign">3</property>
            <child>
              <object class="GtkButton">
                <property name="label">buton01</property>
              </object>
            </child>
            <child>
              <object class="GtkButton">
                <property name="label">buton02</property>
              </object>
            </child>
            <child>
              <object class="GtkButton">
                <property name="label">buton03</property>
              </object>
            </child>
          </object>
        </child>
        <child>
          <object class="AdwStatusPage">
            <property name="title">Any other window element</property>
          </object>
        </child>
      </object>
    </child>
  </object>
</interface>

我还推荐使用 Workbech 在 gtk4 中对 UI 进行建模,它使工作变得更加容易。

© www.soinside.com 2019 - 2024. All rights reserved.