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