gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:06 25 4
gpt4 key购买 nike

在 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_event_box_set_visible_window 使窗口不可见(并且仅供输入。)

关于c++ - 如何为 GtkEventBox 提供透明背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6272450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com