我在 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()
有什么帮助吗?