我正在尝试在标题栏下方创建一个工具栏来容纳一些按钮。我应该如何继续使用 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>
工具栏基本上是一个具有“工具栏”样式的 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 进行建模,它使工作变得更加容易。