2016-01-13 101 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利润率等工作。大多数典型的小部件现在应该可以工作,但是如果您仍然发现任何不支持的部件,请提交一个错误(甚至可能提交补丁!),请求将其转换。 –