我正在开发Gtk3应用程序。因此,我使用Glade 3.16.1在Ubuntu上设计了窗口。 我有一个GtkWindow布局与垂直分隔GtkPaned。加载CSS文件我给窗口一个这样的背景图像:
GtkPaned#mainLayout {
background-color: transparent;
/* OR: background-color: rgba(0, 0, 0, 0.0) */
/* OR: background-image: none */
}
但似乎布局组件使用纯色绘制在其上,因此背景图像仅部分可见。你可以看到 here
我的第一次尝试是将布局的背景颜色设置为透明,但它没有改变任何东西(任何其他颜色都有效):
GtkWindow#window {
background-color: #00FF00;
}
GtkPaned#mainLayout {
background-color: rgba(255, 0, 0, 0.5)
}
感谢您的帮助,
问候托马斯
PS:有没有人为Windows支持Gtk3(+ CSS)的Glade版本?我在他们的网站上只发现了Glade 3.8(CSS支持版本为3.16 / 3.18)。
编辑:以下是此问题的更好示例:
G_MODULE_EXPORT gboolean drawMainContainer(GtkWidget *widget, cairo_t *cr, gpointer data) {
guint width, height;
GdkRGBA color;
width = gtk_widget_get_allocated_width (widget);
height = gtk_widget_get_allocated_height (widget);
cairo_rectangle (cr, 0, 0, width, height);
gtk_style_context_get_color (gtk_widget_get_style_context (widget),
0,
&color);
cairo_set_source_rgba (cr, 0, 0, 0, 0);
cairo_fill (cr);
return FALSE;
}
- > Image with Alpha 50% / 0.5
你可以看到它看起来像红色和白色的混合。但我希望那种白色消失。
EDIT2: 我也试过覆盖绘制功能并用Cairo绘制透明矩形 - >没有成功。我的代码:
>> arrayfun(@(x,y) A(x,y), R, C)
ans =
1 5
1 5