1

我使用方法 override_background_color 成功更改了 Gtk.TextView (GTK3) 的背景颜色:

color.parse(self.settings.get_string("bgcolor"))
self.ui.NoteView.override_background_color(Gtk.StateType.NORMAL,color)

我还覆盖了前景色。不幸的是,在这种情况下,在文本中进行选择是不可见的。如何在不丢失可见文本选择的情况下修改 TextView 的背景和前景色?

4

1 回答 1

0

最好在 GtkTextView 中使用GtkTextTags. 您可以将任何类型的文本格式(背景和前景色、字体、大小、粗细等)应用于文本的任何部分。

单击此处查看示例。希望有帮助!

顺便说一句,你正在做的是改变你的风格TextView。最好不要这样做,特别Gtk是如果您不在受控环境中或计划发布您的软件供他人使用,因为 gtk 的理念是将样式和主题留给最终用户自己的个人接触/需要。这就是为什么通过覆盖样式颜色会得到一些不需要的结果的原因。就 a 而言,GtkTextView确实GtkTextTags通过使用上面的链接提供了简单的文本格式(甚至支持添加图像/小部件) 。

于 2012-07-03T14:31:02.243 回答