我有一个GtkSource.View
,它的换行模式设置为Gtk.WrapMode.CHAR
。当它换行时,它会在行尾插入-
。如何防止这种情况?
在我的研究中,我发现Pango库有一个attr_insert_hyphens_new(False)
函数,它返回一个Pango.Attribute
,但我不明白您打算如何使用这些Pango属性。
当前代码:
view = GtkSource.View()
view.set_wrap_mode(Gtk.WrapMode.CHAR)
context = view.get_pango_context()
attrList = Pango.AttrList()
layout = Pango.Layout(context)
attr = Pango.attr_insert_hyphens_new(False)
attr.start_index = Pango.ATTR_INDEX_FROM_TEXT_BEGINNING
attr.end_index = Pango.ATTR_INDEX_TO_TEXT_END
attrList.insert(attr)
layout.set_attributes(attrList)
2条答案
按热度按时间ru9i0ody1#
您必须从上下文中获取pango属性列表,然后将新属性插入到列表中。
在我对另一个问题的回答中有一个例子,其中插入了形状属性。
uxh89sit2#
遇到了同样的问题,
我发现了两种避免连字符的方法。
//似乎都需要gtk 4
A. pango标记
insert_hyphens
属性需要Pango〉= 1.44
https://docs.gtk.org/Pango/pango_markup.html#:~:text=insert_hyphens
注:堆栈溢出逃脱的网址,你最好复制到位置(而不是点击),以锚到关键字。
甚至pygtk与Pango 1.50
没有运行时错误,但似乎没有影响gtk 3。
(也许GTK 3没有处理好)
B. Gtk.文本标记:插入连字符
需要gtk 4
https://docs.gtk.org/gtk4/class.TextTag.html#properties:~:text=TextTag%3Ainsert%2Dhyphens
gtk 3将得到错误:
类型错误:对象
GtkTextTag' doesn't support property
插入连字符'演示代码