在PyGObject 3.16中实现替换标签以折旧Gtk 3.10+库存按钮

时间:2015-06-22 13:46:39

标签: python gtk3 glade pygobject

我正在使用Glade 3.18设计接口,我稍后从gi模块加载PyGObject以创建Gtk 3.16用户界面。

举个例子,让我们使用“确定”按钮。参考手册(适用于Gtk 3GI)声明:

  自版本3.10起,

GTK_STOCK_OK已被弃用,不应在新编写的代码中使用。

     

不要使用图标。使用标签" _OK"。

但是,将标签设置为'_OK',无论是以编程方式使用button.set_label('_OK')还是在Glade中(在“常规”选项卡下,在“带有可选图像的标签”部分中),都会生成一个显示按钮“_OK”而不是预期的“确定”和图标。

所以我的问题是:使用PyGObject 3.16实现Gtk.STOCK_OK的建议替换的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您应该在Gtk.Image内打包Gtk.LabelGtk.Box,然后在Gtk.Button内打包。您还应该在按钮上使用Gtk.Button.set_always_show_image(),并使用Gtk.Button.use_underline()启用_OK标签的助记符。

box = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL)
# image and label are defined elsewhere
box.add(image)
box.add(label)
button = Gtk.Button(use_underline=True, always_show_image=True)
button.add(box)
button.show_all()

在任何情况下,强烈建议您使用图像通用标签,例如“确定”。使用描述操作的适当标签,避免使用无意义的图标。

股票图标和标签已被弃用,因为它们对于应用程序开发人员来说不够灵活。股票图标不包括图标主题中的整套可用命名图标;股票标签通常没有足够的表现力供用户理解,而且它们也有固定的助记符,这些助记符可能会在复杂的用户界面中发生冲突(例如“_Open”和“_OK”),尤其是涉及翻译时。

同样,GTK不再提供用户设置来切换菜单和按钮中图标的可见性;应用程序开发人员和设计人员负责决定菜单项或按钮是否应该有图标,因为他们负责决定GUI的外观和行为。

强烈建议应用程序开发人员在其UI中使用富有表现力的标签,并在影响最大的地方使用主题图标。