2012-04-16 58 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。