【问题标题】:Python Gtk4 button with image and label带有图像和标签的 Python Gtk4 按钮
【发布时间】:2023-02-21 20:47:50
【问题描述】:
我正在尝试在 Gtk4.0 中创建一个按钮,该按钮应该有一个图标和一个标签。
但是当我设置标签时,图像将被删除,而当我设置图像(通过btn.set_icon_name)时,标签将被删除。
经过一些研究,我发现它应该是这样工作的:(developer-old.gnome.org)
添加一个具有给定图标名称的 GtkImage 作为孩子。如果按钮已经包含一个子小部件,则该子小部件将被删除并替换为图像。
我在 Stackoverflow 上找到了这个:Python GTK3 button with image and label,我确信它在 Gtk 3.0 中工作正常,但我使用的是 Gtk 4.0
Gtk 4.0 中的 Gtk.Button.set_always_show_image(True) 方法在哪里?
【问题讨论】:
标签:
python-3.x
linux
gtk
gtk4
【解决方案1】:
GTK4中没有这样的方法,因为按钮只能有三种状态:
如果你想在 GtkButton 中同时显示标签和图标,那么将标签和图标打包到 GtkBox 中,然后将框放在按钮中。
作为 UI 定义:
<object class="GtkButton">
<property name="child">
<object class="GtkBox">
<property name="spacing">6</spacing>
<child>
<object class="GtkImage">
<property name="icon-name">some-icon</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Some Text</property>
</object>
</child>
</object>
</property>
</object>
作为 Python 代码:
box = Gtk.Box(spacing=6)
icon = Gtk.Image(icon_name="some-icon")
label = Gtk.Label(label="Some Text")
box.append(icon)
box.append(label)
button = Gtk.Button(child=box)