Подтвердить что ты не робот

Название виджета Python GTK +

Как получить виджет "имя"?

Когда я определяю GUI с помощью Glade, я могу "называть" виджеты окна, но как восстановить это свойство, когда у меня есть экземпляр объекта виджета?

Я пробовал get_property(), get_name() и $widget.name безрезультатно.

Обновление: Я использую формат файла GtkBuilder (т.е. формат XML).

Разрешение: Исправление, которое я использовал: используйте метод set_property("name", name) для виджета сразу после его получения из GtkBuilder.

4b9b3361

Ответ 1

Я использую форму класса-метода, которая работает для меня:

gtk.Buildable.get_name(widget)

Ссылки

PyGtk: gtk.Buildable.get_name

Gtk3: Gtk.Buildable.get_name

Цитата из :

До GTK + 2.20 gtk.Builder устанавливал свойство "name" построил виджеты для атрибута "id". В GTK + 2.20 или новее вы необходимо использовать gtk.Buildable.get_name() вместо gtk.Widget.get_name() для получения "id" или установки свойства "name" в определении пользовательского интерфейса.


Далее

Были обнаружены некоторые ошибки, в которых GtkBuilder устанавливает имя виджета как идентификатор компоновщика или не устанавливает его вообще. См. Ubuntu и GNOME ошибки. Я понятия не имею, почему ошибки говорят, что он устанавливает идентификатор вместо имени, поскольку я только видел, что имя не установлено.

Ответ 2

self.builder.get_name(widget)

Где виджет - объект виджета. Работает с использованием быстрой среды разработки Ubuntu

Ответ 3

Учитывая виджет w, что возвращает w.get_name()? Если None, это означает, что виджет не имеет свойства name. Может быть, вы хотите gtk.glade.get_widget_name(w) вместо этого? (Я не уверен, что свойство name виджета и имя для него в XML-документе Glade, из которого он был создан, являются одним и тем же...).