【问题标题】:How to change background of textview in pygobject "gtk3"?如何更改pygobject“gtk3”中textview的背景?
【发布时间】:2012-04-16 10:01:04
【问题描述】:

我正在使用 python 在 gtk 3 中编写一个文本编辑器。 在 gtk 2 我曾经做过 self.modify_base(Gtk.StateType.NORMAL, Gtk.gdk.Color(bg)) 在 PyGObject 中,我认为它必须与样式上下文有关,但我不确定什么是正确的方法,我在网上只找到了这个文档,但这还不够: python gtk3 tutorial 我认为这段代码可能是它的开始:

    context = self.get_style_context()
    context.set_background(Gtk.STYLE_PROPERTY_BACKGROUND_COLOR)

有什么想法吗?

【问题讨论】:

  • GtkTextView 是一个复杂的小部件,不,你不会改变小部件内文本的背景颜色。现在,这是最好的文档,作为补充,您应该查看 Gtk 的 C 文档,因为这些也适用。关键是,要更改文本的背景,请尝试更改文本的属性。如何:添加2个GtkTextMark,一个在开头,另一个在文本末尾,并更改该文本的背景颜色属性。检查 gtk3-demo 程序的说明,不过它是用 C 语言编写的。
  • 这是一个使用带有 CSS 的 GTK3 设置 GtkTextView 样式的示例。虽然它是 C 代码,但它应该可以帮助你。 http://www.gtkforums.com/viewtopic.php?f=3&t=988&p=195276&hilit=Styling+a+GtkTextView+with+Gtk3+and+Css#p195276

标签: python gtk3 pygobject


【解决方案1】:

我找到了答案,首先你必须导入 Gdk。

from gi.repository import Gdk

假设 Gtk.TextView 实例被称为 doc

doc.override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA(0, 0, 0, 1))

根据需要更改 Gdk.RGBA(0, 0, 0, 1)

rgba,每个值都在0.0到0.1之间,r代表红色,g代表绿色,b代表蓝色,a代表alpha。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 2015-12-17
    • 2015-07-22
    • 1970-01-01
    相关资源
    最近更新 更多