1

我在 Python 中使用 GtkSource.view 来显示空白字符。

设置 View.set_draw_spaces(GtkSource.DrawSpacesFlags.ALL) 后,它显示空白字符,但我想重绘/自定义一些符号,如不间断空格、不间断连字符、零宽度空间,并使断点符号更小.

但是如何自定义/重新定义这些字符或扩展/重新定义 GtkSourceView 方法。

import gi
gi.require_version('Gtk', '3.0')
gi.require_version('GtkSource', '3.0')
import cairo

from gi.repository import Gtk
from gi.repository import GtkSource
from gi.repository import GObject

window = Gtk.Window()
window.set_default_size(200, 200)
window.connect("destroy", Gtk.main_quit)

textview = GtkSource.View()
textview.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
textbuffer = GtkSource.Buffer()
textbuffer.set_text("He\tllo world\n"*2, -1)

end_iter = textbuffer.get_end_iter()
textbuffer.insert(end_iter, '\nNonbreaking space: \n')
textbuffer.insert(end_iter, unichr(0x00a0)*10)
textbuffer.insert(end_iter, '\nNonbreaking Hyphen: \n')
textbuffer.insert(end_iter, unichr(0x2011)*10)
textbuffer.insert(end_iter, '\nZero Width Space: \n')
textbuffer.insert(end_iter, unichr(0x200b))

draw_spaces = GtkSource.DrawSpacesFlags.ALL
textview.set_draw_spaces(draw_spaces)
textview.set_buffer(textbuffer)

window.add(textview)
window.show_all()

Gtk.main()

有什么帮助吗?

在此处输入图像描述

4

0 回答 0