10
votes

Python GTK + Nom du widget

Comment puis-je obtenir le "nom" d'un widget?

Lorsque je définis une interface graphique à l'aide de Glade, je peux "nommer" les widgets de la fenêtre, mais comment récupérer cette propriété quand j'ai une instance d'objet de widget?

J'ai essayé get_property () , get_name () et $ widget.name en vain non disponible.

mise à jour: J'utilise le format de fichier GTKBuilder (c'est-à-dire format XML).

résolution: Un correctif que j'ai utilisé: Utilisez le set_property ("nom", nom) méthode sur le widget juste après l'obtenir de gtkbuilder .


1 commentaires

Quel format utilisez-vous? Glade ou gtkbuilder?


3 Réponses :


0
votes

Compte tenu du widget w , qu'est-ce que w.get_name () retourner? Si Aucun , cela signifie que le widget n'a pas de nom propriété . Peut-être que vous voulez gtk.glade.get_widget_name (w) à la place? (Je ne sais pas si le nom nom du widget et le nom pour celui-ci dans la Glade XML à partir duquel il a été créé sont la même chose ...).


2 commentaires

Ils rentrent "aucun", ainsi que gtk.glade.get_widget_name (w) .


@JDupont, et pourtant vous êtes certain que w a été construit à partir d'une entrée nommée dans un fichier Glade XML? Ensuite, je suis à court d'idées ... :-(



15
votes

J'utilise le formulaire de méthode de classe, qui fonctionne pour moi:

gtk.Buildable.get_name(widget)


1 commentaires

C'est exactement ce qui se passe à ma fin! Merci pour l'information!



2
votes
self.builder.get_name(widget)
Where widget is the widget object.  Works using Ubuntu's packaged quickly development environment

1 commentaires

Cela a peur que cette réponse est incomplète et trompeuse, qu'est-ce que self.builder variable? gtk.builder ( GTK2 ni GTK3 ) n'a pas de get_name méthode.