Я собираю графический интерфейс с использованием PyGObject. Этот код Python работает в контексте. Я получаю кнопку панели инструментов со значком «Открыть».Что такое неисчерпаемый способ отображения значка запаса в GTK3?
from gi.repository import Gtk
# ...
toolbar = Gtk.Toolbar()
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)
# ...
self.fileOpen = Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN)
self.fileOpen.connect("clicked", self.on_FileOpenStandard_activate)
toolbar.insert(self.fileOpen, -1)
Но согласно this resource, new_from_stock()
осуждается:
Устаревший начиная с версии 3.10: Использование
Gtk.ToolButton.new()
вместе сGtk.Image.new_from_icon_name()
вместо этого.
Хорошо, тогда. Таким образом, после того, как рыть дальше, это то, что я придумал для замены:
self.fileOpen = Gtk.ToolButton(
Gtk.Image.new_from_icon_name("document-open",
Gtk.IconSize.LARGE_TOOLBAR),
"Open")
self.fileOpen.connect("clicked", self.on_FileOpenStandard_activate)
toolbar.insert(self.fileOpen, -1)
Но это результат:
Что такое правильный способ сделать это, что до сих пор поддерживается по существующей библиотеке GTK?
Объяснение, что вы нашли: в переплетах PyGObject, Конструкторы объектов принимать только арг ключевых слов, представляющих свойства GObject объекта. С другой стороны, конструкторы C, которые часто имеют дополнительные параметры удобства для задания свойств, поскольку свойства могут быть громоздкими в C, связаны как статические методы 'new()'. Это должно работать одинаково хорошо: 'Gtk.ToolButton (icon_widget = openIcon , label = "Open") ' – ptomato