我想编写一个 Python 应用程序,它使用 GTK(通过gi.repository
)来显示大量数据的文本视图。(具体来说,程序中的反汇编指令,类似于 IDA 显示的。)
我认为这应该相当简单:使用普通的 GtkTextView 和 GtkTextBuffer 的自定义子类,它将处理“给我一些文本”请求,生成一些文本(反汇编一些指令)和一些标签(用于着色、格式化等)并归还它们。
问题是我找不到任何关于如何以这种方式继承 GtkTextBuffer 以自己提供文本的信息。我已经尝试在我的子类中实现get_text
andget_slice
方法,但它们似乎永远不会被调用。似乎我唯一能做的就是使用标准的 GtkTextBuffer 和set_text
方法,并尝试以某种方式跟踪光标位置和要显示的行数,但这似乎与 MVC 的工作方式完全相反。可能有数百万行,因此提前生成所有文本是不可行的。
我正在使用 Python 3.4 和 GTK3。