2011-12-13 159 views

回答

6

我假設你有一個模型,其中包含一個包含一些文本的列,並且gtk.CellRendererText小部件將text屬性設置爲該模型中的列索引。

如果您向該模型添加新列,您可以使用它來設置每個單元格渲染器中使用的字體重量。要做到這一點,只需將gtk.CellRendererText小部件weight屬性設置爲模型中的新列索引,然後將weight-set設置爲True

之後,您只需使用pango.WEIGHT常數(如pango.WEIGHT_NORMALpango.WEIGHT_BOLD)中的任何一個設置模型中的字體重量。

舉個例子,讓我們說,這些都是你的模型中的列(一個用於文本,一個字體粗細):

Model columns

,這些都是一對夫婦行的,你已經添加測試:

Model rows

(注意:pango.WEIGHT_NORMAL=400pango.WEIGHT_BOLD=700

在這種模式下,您可以創建一個gtk.TreeView與一列,文本呈現:

Treeview hierarchy

在渲染器設置了text屬性模型的text柱:

Cell renderer text

weight屬性到weight列中的型號:

Cell renderer weight

結果,您與您添加到模型測試數據獲取是:

Final result

在這裏你可以看到文本顯示與在設置字體的重量模型。

+0

感謝您的快速響應。我讀了你剛剛解釋過的doc thigks。但我不知道該怎麼做。如何訪問gtk.CellRendererText?我剛剛從Glade創建了TreeView,並將代碼中的行附加到它。我如何從我的TreeView獲取渲染器,以及如何將gtk.CellRendererText小部件的weight屬性設置爲模型中的新列索引,並將權重設置爲True?我應該在林間空地做什麼,或者我以編程方式做?我看着gtk.TreeView的文檔,並沒有找到如何使用單元格渲染器。你能解釋一下嗎?對不起,這是我第一次與GTK合作。 – umpirsky

+0

我添加了一個完整的截圖示例。我認爲這應該是完全清楚的。 – jcollado

+0

啊,完美。因爲我錯過了字體重量屬性可以綁定到行值http://i.stack.imgur.com/Q2ikZ.png的事實,所以我非常滿意。非常感謝你! – umpirsky