我一直在尝试在Python-GObject中使用带Gtk.TextView
和{Gtk.TextBuffer
具有^{Gtk.TextIter
作为输入,并且必须具有指定的长度。在
这里的问题是我只想使用Gtk.TextView
来显示文本,而不想对其进行编辑。因此,虽然我认为我了解如何使用Gtk.TextTag
与可编辑/可选择文本一起使用,以实质性地改变其外观(甚至行为),但我不完全确定如何对静态文本执行相同的操作。将标记应用于此类的最简单方法是什么?在
例如:将“<;b>;Some text<;/b>;”转换为“某些文本”(或使用哪个标记)
pythongtk+3教程中有一个很好的例子,TextView Example
但是为了使重要部分更清楚(希望如此),正如您所猜测的那样,您必须在TextBuffer中定义这些标记,而不是在TextView中,例如
然后,您可以将标记应用于要加粗的文本部分,为此,您必须提供给TextBuffer.apply_标记()方法该部分文本的边界(开始、结束),如:
^{pr2}$你会准备好的。在
在上面的例子中,边界是由用户选择的文本部分决定的,但是如果您显示的是只读文本,您可以自己在代码中提供边界,请查看TextBuffer文档。在
也可以通过以下方法添加具有有效pango标记的文本:
如果该方法可以返回指向插入文本末尾的新iter,这将使工作更加简单,但是该方法来自于简单的内省,它需要重写才能这样做。在
请参阅下面的最小示例(您可以让它变得更好):
相关问题 更多 >
编程相关推荐