如何使用GTK将图像添加到按钮

时间:2017-03-28 13:23:51

标签: c++ gtk3 linuxmint

我正在尝试将图像添加到带标签的按钮,但图像无法显示,并且损坏的图像也不会显示。

stop_button = gtk_button_new_with_label("stop");
image = gtk_image_new_from_file ("/home/cendit/Escritorio/index.jpeg");
gtk_button_set_image (GTK_BUTTON(stop_button),image);

我尝试了另一条道路" file:///home/cendit/Escritorio/index.jpeg"但它没有成功。

2 个答案:

答案 0 :(得分:5)

默认情况下,按钮内部的图像不可见,因为我们已从GTK + 2.x转换为3.x.遗憾的是,API尚未清理以反映这一变化,因此它有点陷阱。

如果您想要显示一个只包含 图像的按钮,您可以使用:

GtkWidget *image = gtk_image_new_from_file ("...");
GtkWidget *button = gtk_button_new_with_label ("...");

gtk_button_set_always_show_image (GTK_BUTTON (button), TRUE);
gtk_button_set_image (GTK_BUTTON (button), image);

另一方面,如果你想要一个同时包含文字和图像的按钮,你可以使用:

{{1}}

有关详细信息,请参阅gtk_button_set_image()的文档。

答案 1 :(得分:0)

这就是你需要做的事情

GtkImage *imagen_pantalla_completa;
GtkWidget *pantalla_completa;

pantalla_completa = gtk_button_new_with_label("");                                                  
imagen_pantalla_completa = (GtkImage *)gtk_image_new_from_file("/home/user..."); 
gtk_button_set_image (GTK_BUTTON(pantalla_completa),(GtkWidget *)imagen_pantalla_completa); 

您需要添加此项以显示图像

GtkSettings *default_settings = gtk_settings_get_default();
g_object_set(default_settings, "gtk-button-images", TRUE, NULL);