2012-04-16 44 views
1

我正在使用python在gtk 3中编写文本编辑器。 in gtk 2我曾经做过 self.modify_base(Gtk.StateType.NORMAL, Gtk.gdk.Color(bg)) 在PyGObject中,我认为它必须做一些风格的上下文,但我不确定什么是正确的方式,我在网上只发现了这个文档,但这还不够: python gtk3 tutorial 我想这也许代码在其开头:如何更改pygobject“gtk3”中textview的背景?

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

所以任何想法?

+0

GtkTextView是一个复杂的小部件,不会改变小部件内部文本的背景颜色。 现在,这是最好的文档,作为补充,您应该查看Gtk的C文档,因为它们同样适用。 要改变文本的背景,请尝试更改文本的属性。方法如下:在开始处添加2个GtkTextMark,并在文本的末尾添加2个GtkTextMark,并更改该文本的背景颜色属性。 检查gtk3演示程序的方向,即使它在C中。 – erick2red 2012-04-17 14:43:30

+0

下面是一个使用GTK3和CSS设计GtkTextView的示例。这是C代码,但它应该可以帮助你。 [http://www.gtkforums.com/viewtopic.php?f=3&t=988&p=195276&hilit=Styling+a+GtkTextView+with+Gtk3+and+Css#p195276](http://www.gtkforums.com /viewtopic.php?f=3&t=988&p=195276&hilit=Styling%20a%20GtkTextView%20with%20Gtk3%20and%20Css#p195276) – mike 2012-07-04 16:31:30

回答

2

我找到了答案,首先你必须导入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。