Рассмотрим эту программу на Python, которая использует PyGtk и Hippo Canvas для отображения текстовой метки, которую можно нажимать. Щелчок по текстовой метке заменяет его виджетом Hippo CanvasEntry, который содержит текст метки.
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()
Каким образом CanvasEntry, созданный при нажатии на текстовую метку, автоматически фокусируется во время создания?