GTK3,Pango - 在TextView中将混合大小写文本渲染为大写?

时间:2015-01-15 20:23:12

标签: python gtk3 pango

TextBuffer中,TextView可能是TextTag的最高效方式是什么?

它不是整个文本,只是其中的特定样式 - 并且在用户将文本样式更改回非大写样式的情况下,需要保留该部分的原始大小写。

因此,如果文本的相关部分可以用TextBuffer进行标记,这将是理想的,但没有标记可以完全大写(有一个small_caps字体变体,由于某种原因不会似乎在textview中工作) - 可以创建一个自定义TextTag属性,如“all_caps”,如果是,它将如何实现?

其他想法会覆盖textview绘制功能(听起来很痛苦)或可能创建辅助Pango并动态更改文本案例?

更新:

对于这个应用程序,最好的方法是拦截从TextBuffer(来自TextView的{​​{1}}传递给do_draw的字符串,I 想想)并随时改变它:对于这个应用程序中的其他文本样式,需要一些额外的文本字符添加(它是一个编剧应用程序,所以有一个'Parenthical'样式,毫不奇怪,总是包含在括号中 - 这些应该作为样式的一部分添加,而不是依赖于用户添加它们)

所以更新的问题是:一个子类/猴子代码/ Pango / PangoCairo / Gtk+ 3如何拦截传递给Pango的字符串(使用TextTags)以便根据TextTag样式更改/添加它?

0 个答案:

没有答案