【发布时间】:2019-07-15 16:27:21
【问题描述】:
我正在一个项目中使用 Gtk.TextView,我需要更改实例化对象的方式,以便可以在 TextView 中包含自定义 TextBuffer。
目前我的相关代码是:
# Relevant code only
class EditBox(Gtk.TextView):
__gsignals__ = {
# some signals
}
def __init__(self):
super().__init__()
到目前为止,此类实例化并完美运行。我想做的更改让我需要使用new_with_buffer 签名,如文档中的here 所述。简单地将缓冲区传递给 super 语句并不能解决问题,并且实例化/调用 super.add_with_buffer() 也会导致错误。
我需要能够扩展我的 EditBox,以便我可以使用父级中的 new_with_buffer 方法对其进行实例化,或者能够以它正确实例化的方式进行超级。进行此更改后,我不需要能够在没有缓冲区的情况下进行实例化。
我可以使用 new_with_new 方法实例化 TextView 本身,并将其传递到缓冲区中,但我似乎无法弄清楚如何扩展 TextView 类,以便我可以将缓冲区传递到我的拥有自己的扩展类并将其传递给父类。
这是怎么做到的?
【问题讨论】:
标签: python-3.x gtk gtk3 pygobject