Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何为GtkEventBox提供透明背景?_C++_Linux_Gtk - Fatal编程技术网

C++ 如何为GtkEventBox提供透明背景?

C++ 如何为GtkEventBox提供透明背景?,c++,linux,gtk,C++,Linux,Gtk,在GTK对话框中,我将一个GtkLabel包装在一个GtkEventBox中,以便它可以接收单击事件(导航到网页以获取更多信息)。从功能上来说,它工作得很好 但是,当我将标签添加到事件框时,标签的背景不再是透明的——标签现在具有默认的窗口背景颜色。这对我不起作用,因为我正在绘制的窗口有一个背景位图,缺乏透明度使它看起来很愚蠢 当GtkLabel添加到GtkEventBox时,我需要做什么来保持其背景透明 GdkColor color; gdk_color_parse("blue", &c

在GTK对话框中,我将一个GtkLabel包装在一个GtkEventBox中,以便它可以接收单击事件(导航到网页以获取更多信息)。从功能上来说,它工作得很好

但是,当我将标签添加到事件框时,标签的背景不再是透明的——标签现在具有默认的窗口背景颜色。这对我不起作用,因为我正在绘制的窗口有一个背景位图,缺乏透明度使它看起来很愚蠢

当GtkLabel添加到GtkEventBox时,我需要做什么来保持其背景透明

GdkColor color;
gdk_color_parse("blue", &color);
GtkStyle* linkstyle = gtk_style_new();
linkstyle->fg[GTK_STATE_NORMAL] = color;
GtkWidget* learnmorebox = gtk_event_box_new();
GtkWidget* learnmore = gtk_label_new("More Info");
gtk_widget_set_style(GTK_WIDGET(learnmore), GTK_STYLE(linkstyle));
gtk_container_add(GTK_CONTAINER(learnmorebox), learnmore);
gtk_widget_set_events(learnmorebox, GDK_BUTTON_PRESS_MASK);
g_signal_connect(G_OBJECT(learnmorebox), "button_press_event", G_CALLBACK(learn_more), NULL);

我怀疑我可以在GtkStyle中设置一些东西,但还没有发现任何有用的东西。

GtkEventBox
通过创建一个新的X窗口来接收事件。默认情况下,它使用输入/输出窗口。调用
gtk\u event\u box\u set\u visible\u window
使窗口不可见(仅输入)。

GtkEventBox
通过创建新的X窗口来接收事件。默认情况下,它使用输入/输出窗口。调用
gtk\u event\u box\u set\u visible\u window以使窗口不可见(仅限输入)。

请参阅。你有什么想法吗?问题是,如果使窗口不可见,则将光标悬停在标签上时无法更改光标。有什么解决办法吗?看。你有什么想法吗?问题是,如果使窗口不可见,则将光标悬停在标签上时无法更改光标。有什么解决方法吗?我认为背景颜色变化的问题在GTK+3中是固定的。我认为背景颜色变化的问题在GTK+3中是固定的。