【问题标题】: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)
    

    【讨论】:

      猜你喜欢
      • 2014-08-30
      • 2015-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多