Considérons ce programme Python qui utilise PyGtk et Hippo Canvas pour afficher une étiquette de texte cliquable. En cliquant sur l'étiquette de texte, on la remplace par un widget Hippo CanvasEntry qui contient le texte de l'étiquette.
import pygtk
pygtk.require('2.0')
import gtk, hippo
def textClicked(text, event, row):
input = hippo.CanvasEntry()
input.set_property('text', text.get_property('text'))
parent = text.get_parent()
parent.insert_after(input, text)
parent.remove(text)
def main():
canvas = hippo.Canvas()
root = hippo.CanvasBox()
canvas.set_root(root)
text = hippo.CanvasText(text=u'Some text')
text.connect('button-press-event', textClicked, text)
root.append(text)
window = gtk.Window()
window.connect('destroy', lambda ignored: gtk.main_quit())
window.add(canvas)
canvas.show()
window.show()
gtk.main()
if __name__ == '__main__':
main()
Comment l'entrée CanvasEntry créée lorsque l'on clique sur l'étiquette de texte peut-elle être automatiquement mise au point au moment de la création ?