2016-01-13 145 views
0

我想設置小部件樣式屬性(與窗C編碼),但它不工作:無法設置「樣式屬性」,在GTK3

我試着在CSS文件中投入

* { 
    -GtkButton-child-displacement-y: 20; 
} 

,並沒有工作,我也嘗試設置它的XML文件中添加此屬性裏面的GtkButton

<property name='child-displacement-y'>20</property> 

一個它不工作(invalide屬性),我想樣式屬性不能與特性一起設置s

那麼,我做錯了什麼?爲什麼CSS文件忽略小部件特定的樣式屬性?

(在Windows GTK +版本3.18)

+0

似乎該屬性缺少單位,嘗試將* px *附加到'20'。此外,您可以直接使用[tag:c]代碼,而不是將其設置在此處,但當然,因爲它更易於維護,因此可以按照您的意願進行操作。 –

+0

風格屬性不需要單位,這一個需要'gint'或'guint' (即使我添加px也不起作用) –

+0

你確定這是[tag:c]類型對於* glib *,css可能會有點不同。文件說什麼? –

回答

0

GtkButton::child-displacement-y現在被忽略,因爲GTK + 3.20。無論如何,你的CSS不會工作。它在3.18中可能已經被打破。抱歉。 :/文檔建議使用CSS邊距和填充代替。

這就是說,否則你的CSS是正確的。我認爲你只是沒有正確加載它。你不能放棄一個隨機的.css文件,並期望它可以工作。您需要使用GtkCssProvider將其明確加載到GtkStyleContext(屬於窗口小部件或默認的GdkScreen以使其適用於所有窗口小部件)中。 (如果您是直接修改主題文件,請參見第一段。)

+0

我正在用css提供程序加載CSS文件,顯示和屏幕......並且它不僅僅是關於child-displacement-y,而是關於所有widget樣式屬性,它們不起作用。 。 CSS中的邊距在GTK 3.18.6 ....中不起作用:/ –

+0

@RedStar需要花費一些時間才能將小部件轉換爲新的「CSS gadget」/「indirect」渲染模型,是什麼讓CSS利潤率等工作。大多數典型的小部件現在應該可以工作,但是如果您仍然發現任何不支持的部件,請提交一個錯誤(甚至可能提交補丁!),請求將其轉換。 –