Environnement:Problème Étiquette Texte
- Interface intégrée à l'aide Glade3.
- Le backend est écrit en Python en utilisant la bibliothèque GTK + Builder.
-
Bien que je connais la méthode que je dois utiliser pour mettre à jour le texte d'une étiquette (label.set_text (« string »)), je vais avoir du mal à obtenir l'objet de l'étiquette dans le code python.
Voici ce que mon code ressemble à:
#!/usr/bin/python
# Filename: HelloPython.py
# Author: Andrew Hefley Carpenter
# Date: 18 August 2010
import sys
import gtk
class HelloPython:
def on_window_destroy(self, widget, data=None):
gtk.main_quit()
def __init__(self):
builder = gtk.Builder()
builder.add_from_file("HelloPython.xml")
self.window = builder.get_object("window")
builder.connect_signals(self)
def on_button1_clicked(self, widget):
print "Hello World!"
widget.set_label("Hello World!")
#I'd like to update
if __name__ == "__main__":
editor = HelloPython()
editor.window.show()
gtk.main()
objectif final: Je veux mettre à jour « Object X » en utilisant c'est la méthode set_text après le rappel à « Object Y » (dans ce cas button1) comme manipulé par "on_button1_clicked"
compréhensible. La hiérarchie du conteneur est la suivante: -La fenêtre a un enfant, la boîte verticale '2 conteneurs' -la boîte verticale a deux enfants, button1 et label1. -J'aimerais que la mise à jour de label1 se fasse quand c'est un frère, on clique sur button1. Comment puis-je atteindre ce/quels obstacles conceptuels m'empêchent de comprendre cela? Merci pour la réponse rapide. – Drew
ah, gtk ne sait pas ou ne se soucie pas de cette relation "frère". vous devrez obtenir une référence à l'étiquette en utilisant gtk.Builder.get_object() et appeler set_text sur cet objet. – anthony
aussi, vous aurez envie de sortir de l'habitude d'utiliser les noms de widgets par défaut glade (button1, label1) dès que possible, sinon votre vie va téter. – anthony