【问题标题】:How to add an image to a button with GTK如何使用 GTK 将图像添加到按钮
【发布时间】:2017-08-21 14:27:31
【问题描述】:

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

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”,但没有成功。

【问题讨论】:

    标签: c++ gtk3 linux-mint


    【解决方案1】:

    默认情况下,按钮内的图像是不可见的,因为我们从 GTK+ 2.x 过渡到 3.x。遗憾的是,API 没有被清理以反映这一变化,所以这有点像一个陷阱。

    如果你想显示一个按钮只有里面有一张图片,你可以使用:

    GtkWidget *image = gtk_image_new_from_file ("...");
    GtkWidget *button = gtk_button_new ();
    
    gtk_button_set_image (GTK_BUTTON (button), image);
    

    另一方面,如果你想要一个按钮里面有文本和图像,你可以使用:

    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);
    

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

    【讨论】:

      【解决方案2】:

      这是你需要做的

      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);
      

      【讨论】:

      • 更改 GtkSetting 会使图标也出现在其他按钮上,这不是问题所在。
      猜你喜欢
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 2018-02-05
      • 2020-05-04
      • 2012-09-11
      相关资源
      最近更新 更多