【问题标题】:Python GTK3 button with image and label带有图像和标签的 Python GTK3 按钮
【发布时间】:2014-08-30 17:47:15
【问题描述】:

我正在尝试获取带有图像和标签的按钮,但没有成功。我可以有带有标签或图像的按钮,但不能两者兼有。 这是我的部分代码:

try:
    pb = Pixbuf.new_from_file_at_size('myimg.jpg', 100, 100)
except:
    pb = None
img = Gtk.Image()
img.set_from_pixbuf(pb)
button1 = Gtk.Button(xalign=0.5, yalign=1)
#button1.set_label(lbl)
button1.set_image(img)
button1.set_image_position(Gtk.PositionType.TOP)
button1.get_style_context().add_class("btn_article")

有什么想法吗? 谢谢

【问题讨论】:

    标签: python image button label gtk3


    【解决方案1】:

    Doc: Gtk.Button.set_image (widget, data): "如果标签文本为NULL,则显示图像"。这里的图像通常是一个图标,因此有一个与之相关的图标名称,并且(取决于设置)如果需要根据图标显示标签。反过来说,标签用于查找与其关联的图标并(如果需要)显示该图标。 使用:

    button1.set_always_show_image (True)
    

    或者,如果这不成功,在里面创建一个容器(在你的情况下是 Gtk.Grid)并在按钮内打包,即:

    grid = Gtk.Grid ()
    img = Gtk.Image()
    img.set_from_pixbuf(pb)
    label = Gtk.Label ('test')
    
    grid.attach (img, 0, 0, 1, 1)
    grid.attach (label, 0, 1, 1, 1)
    grid.show_all ()    
    
    button1.add (grid)
    

    【讨论】:

    • 我使用的是 ruby​​,但 python 语法几乎是 1:1 的。 .set_always_show_image(true) 似乎工作得很好。不过,我实际上最终使用了一个水平框 - 与网格相比,我更容易将注意力集中在它周围。
    猜你喜欢
    • 1970-01-01
    • 2023-02-21
    • 2015-09-26
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 2018-11-10
    相关资源
    最近更新 更多