Python GTK + имя виджета

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

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

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

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

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

10
задан jldupont 16 August 2010 в 11:58
поделиться

2 ответа

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

gtk.Buildable.get_name(widget)

Ссылки

PyGtk: gtk.Buildable.get_name

Gtk3: Gtk.Buildable.get_name

Цитата из gtk2 GtkBuilder :

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


Далее

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

15
ответ дан 3 December 2019 в 21:19
поделиться

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

0
ответ дан 3 December 2019 в 21:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: