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