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">