Python GTK3使用'do_changed()`方法对Gtk.Entry进行子类化

Python GTK3使用'do_changed()`方法对Gtk.Entry进行子类化,python,python-3.x,gtk3,Python,Python 3.x,Gtk3,当使用do_change()方法对Gtk.Entry进行子类化时,是否有人可以解释这种行为: import gi gi.require_version('Gtk', '3.0') from gi.repository import Gtk class MyEntry(Gtk.Entry): def do_show(self): print('`{0._name}` show'.format(self)) def do_changed(self):

当使用
do_change()
方法对
Gtk.Entry
进行子类化时,是否有人可以解释这种行为:

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

class MyEntry(Gtk.Entry):
    def do_show(self):
        print('`{0._name}` show'.format(self))

    def do_changed(self):
        print('`{0._name}` changed, text is now {0.props.text!r}'.format(self))

    def do_activate(self):
        print('`{0._name}` activate'.format(self))

    def do_destroy(self):
        print('`{0._name}` destroy'.format(self))

gtk_entry = Gtk.Entry()
gtk_entry._name = 'gtk_entry'

my_entry = MyEntry()
my_entry._name = 'my_entry'

# Statement:                     # Output:
gtk_entry.show()                 #
my_entry.show()                  # `my_entry` show
                                 #
gtk_entry.props.text = 'Apples'  # `gtk_entry` changed, text is now 'Apples'
my_entry.props.text = 'Oranges'  # `my_entry` changed, text is now 'Oranges'
                                 #
gtk_entry.activate()             #
my_entry.activate()              # `my_entry` activate
                                 #
gtk_entry.destroy()              #
my_entry.destroy()               # `my_entry` destroy
具体来说,我不明白为什么
gtk_entry.props.text='Apples'
会调用
MyEntry.do_changed()


表示“除了Gtk.Entry之外,您还必须从Gtk.Editable继承”否则“您将覆盖Gtk.Editable提供的基本实现”,但是有人有更深入的解释吗