ZBLOG

误:‘gtk_widget_lower’ was not declared in this scope; did you mean ‘gtk_widget_show’? 15 | gtk_widget_lower(m_pImageLoadBk); | ^~~~~~~~~~~~~~~~ | gtk_widget_show

抱歉,我之前的回答中有个错误。在GTK中,确实没有gtk_widget_lower()函数来降低部件的层级。

要将一个部件放置在其他部件下方以作为背景,可以使用以下方法:

  1. 首先,将背景图像作为GtkImage小部件添加到GtkFixed容器中。这一步骤与之前的回答相同。
GtkWidget *background_image = gtk_image_new_from_file("path/to/image.png");
gtk_fixed_put(GTK_FIXED(fixed_container), background_image, x, y);
gtk_widget_set_size_request(background_image, width, height);
  1. 接下来,将其他需要显示在背景图像上方的部件添加到GtkFixed容器中。它们会自动显示在顶部。
GtkWidget *foreground_label = gtk_label_new("Foreground Widget");
gtk_fixed_put(GTK_FIXED(fixed_container), foreground_label, x2, y2);
  1. 最后,请确保正确设置布局参数和样式以适应背景图像并使其填充整个区域。这与之前的回答相似。
GtkCssProvider *provider = gtk_css_provider_new();
const gchar *css = " #my-fixed-container { background-size: cover; }";
gtk_css_provider_load_from_data(provider, css, -1, NULL);
GtkWidget *fixed_container = gtk_fixed_new();
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
    GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_USER);
g_object_unref(provider);

请注意,“my-fixed-container”是你已创建的GtkFixed容器的名称,可以根据实际情况进行修改。

通过执行以上步骤,你应该能够成功在GtkFixed容器上添加背景图像,并将其他部件显示在其上方。对于控制部件层级顺序,通常会自动处理好。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=13245

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?