GTK可能遇到的問題 匯總


 Failed to load module "canberra-gtk-module"錯誤的解決方案

解決:

sudo apt-get install libcanberra-gtk-module

 使用Glade 構建GTK應用 按鈕失效

使用下面命令構建

gcc main.c `pkg-config --cflags --libs gtk+-3.0` -rdynamic

 

ubuntu 18.04 LTS 安裝codeblocks最新版本

sudo add-apt-repository ppa:pasgui/ppa
sudo apt-get update
sudo apt-get install codeblocks
sudo apt-get install codeblocks-contrib

 在Glade下 下面代碼不會起作用

  手動編寫界面卻可以

  fixedlayout = gtk_fixed_new();
    fixedlayout = GTK_WIDGET(gtk_builder_get_object (builder, "fixedlayout"));
    bgimage = gtk_image_new_from_file(BGIMAGEFILE);
    gtk_fixed_put(GTK_FIXED(fixedlayout), bgimage, 0, 0);

 

GTK3 設置背景圖片

#include <gtk/gtk.h>

   int main( int argc, char *argv[])
   {
               GtkWidget *window;
               GtkWidget *layout;
               GtkWidget *image;
               GtkWidget *button;

               gtk_init(&argc, &argv);

               window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
               gtk_window_set_default_size(GTK_WINDOW(window), 290, 200);
               gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);

               layout = gtk_layout_new(NULL, NULL);
               gtk_container_add(GTK_CONTAINER (window), layout);
               gtk_widget_show(layout);

               image = gtk_image_new_from_file("1.png");
               gtk_layout_put(GTK_LAYOUT(layout), image, 0, 0);

               button = gtk_button_new_with_label("Button");
               gtk_layout_put(GTK_LAYOUT(layout), button, 20, 50);
               gtk_widget_set_size_request(button, 80, 35);

               g_signal_connect_swapped(G_OBJECT(window), "destroy",G_CALLBACK(gtk_main_quit), NULL);

               gtk_widget_show_all(window);

               gtk_main();

               return 0;
}

 

 

 assertion 'GTK_IS_WIDGET (widget)' failed的解決辦法

網絡上錯誤解決辦法:

-export-dynamic 

正確辦法: codeblocks 使用全局信號量 必須配置

-rdynamic

如果你的布局代碼是: 拿必須錯誤 因為你使用的是 GTK2.X ,

<requires lib="gtk+" version="3.0"/>
<object class="GtkWindow" id="window1">

解決辦法: 注意在命令行下 使用 GTK3.0 開發 是不會出錯的

<requires lib="gtk+" version="2.0"/>
<object class="GtkWindow" id="window1">


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM