我使用Glade3.18来设计接口,稍后从gi
模块加载PyGObject来创建Gtk 3.16用户界面。
举个例子,让我们使用“OK”按钮。参考手册(对于Gtk 3和GI)规定:GTK_STOCK_OK
自3.10版以来一直被弃用,不应在新编写的代码中使用。
不要使用图标。使用“确定”标签。
但是,通过编程方式使用'_OK'
或在Glade中(在“常规”选项卡下的“带可选图像的标签”部分中)将标签设置为button.set_label('_OK')
,将生成一个显示“确定”而不是预期的“确定”和图标的按钮。
所以我的问题是:用PyGObject 3.16实现Gtk.STOCK_OK
的替代方案的正确方法是什么?
最佳答案
你应该把aGtk.Image
和aGtk.Label
放在aGtk.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()
无论如何,我们强烈建议您不要使用像“OK”这样的图像或通用标签。使用适当的标签来描述操作,并避免使用无意义的图标。
股票图标和标签已经被否决,因为它们对于应用程序开发人员来说不够灵活。库存图标并不涵盖图标主题中可用的整套命名图标;库存标签通常不够表达,用户无法理解,而且它们还具有固定的助记符号,在复杂的用户界面(如“打开”和“确定”)中可能会发生冲突,尤其是在翻译方面。
类似地,GTK不再提供用户设置来切换菜单和按钮中图标的可见性;应用程序开发人员和设计人员负责决定菜单项或按钮是否应具有图标,因为他们负责决定GUI的外观和行为。
强烈鼓励应用程序开发人员在其ui中使用表现性标签,并在最具影响力的地方使用来自主题的图标。
关于python - 在PyGObject 3.16中为折旧的Gtk 3.10+库存按钮实现替换标签,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30981620/