我使用方法override_background_color成功更改了Gtk.TextView(GTK3)的背景颜色:
color.parse(self.settings.get_string("bgcolor"))
self.ui.NoteView.override_background_color(Gtk.StateType.NORMAL,color)
我也覆盖了前景色。 不幸的是,在这种情况下,在文本中进行选择是不可见的。 如何在不丢失可见文本选择的情况下修改TextView的背景和前景色?
答案 0 :(得分:0)
最好使用GtkTextTags
格式化GtkTextView中的文本。您可以将任何类型的文本格式(背景和前景色,字体,大小,重量等)应用于文本的任何部分。
点击here获取示例。 希望有所帮助!
顺便说一下,你正在做的是改变TextView
的风格。在Gtk
中,最好不要这样做,特别是如果你不在受控环境中或计划发布你的软件以供其他人使用,因为gtk的理念是将造型和主题留到最后用户自己的个人接触/需求。
这就是为什么你通过覆盖样式颜色得到一些不需要的结果。
对于GtkTextView
, 但是通过使用GtkTextTags
提供文本的简单格式(甚至支持添加图像/小部件),如上面的链接所示。