linux下gtk开发环境搭建 |
您所在的位置:网站首页 › ubuntu不支持gtk了吗 › linux下gtk开发环境搭建 |
环境搭建
安装必要的工具 apt install libgtk-3-dev pkg-config可以安装额外的example包,里面提供的一些demo程序是非常好的参考 apt install gtk-3-examplesgtk-3-examples包中的hello-world.c程序 #include static void print_hello (GtkWidget *widget, gpointer data) { g_print ("Hello World\n"); } static void activate (GtkApplication *app, gpointer user_data) { GtkWidget *window; GtkWidget *button; GtkWidget *button_box; window = gtk_application_window_new (app); gtk_window_set_title (GTK_WINDOW (window), "Window"); gtk_window_set_default_size (GTK_WINDOW (window), 200, 200); button_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL); gtk_container_add (GTK_CONTAINER (window), button_box); button = gtk_button_new_with_label ("Hello World"); g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL); g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window); gtk_container_add (GTK_CONTAINER (button_box), button); gtk_widget_show_all (window); } int main (int argc, char **argv) { GtkApplication *app; int status; app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE); g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); status = g_application_run (G_APPLICATION (app), argc, argv); g_object_unref (app); return status; }`命令行编译: gcc hello-world.c -o hello `pkg-config --cflags --libs gtk+-3.0` -o hello glade画图使用glade进行画图,它提供了一种IDE工具来帮助绘图,对新手来说非常友好,最终和android app的布局一样都使用xml保存,可以前期使用glade来进行UI布局调整,之后可以直接编辑xml文件来进行程序逻辑调整。 程序中需要加载解释相应的xml布局文件,从xml文件中构建运行时对象,通过元件的id来过去对象,之后进行各种操作 apt install glade有兴趣可以参考这两个文件,不同发行版上路径可能不同: /usr/share/doc/gtk-3-examples/examples/builder.c /usr/share/doc/gtk-3-examples/examples/builder.ui 帮助文档 apt install devhelp它里面提供了大量的api说明文档,必备手册 如何编译gtk静态版本的程序,这样可以在任意系统中都可以运行? gtk本身只提供了动态链接库版本,没有提供静态链接版本的程序,它本身依赖X11,wayland,libfont等系统库,总共有70多个库,我们想要静态链接的gtk程序随处运行,但是gtk库本身依赖很多系统特定的库。假如静态链接的是wayland1.0,但是机器上运行的是wayland0.1,这样就非常容易出现兼容性问题,所以这个静态链接的必要性需要商榷一下。 结语最近两年一直使用vim,里面配置了ctags,cscope,taglist等,经常看到各种编辑器的各种嘲讽链,个人感觉到哪座山唱那首歌是非常必须的,例如我写个python绝对使用pycharm,写android和java用eclipse,绝不会傻叉到非得用vim写android应用,光导入包都要耗费我好些脑细胞,不如baidu一下花一上午时间整个eclipse+ADT,import工作还是交给工具自动来完成的好,我可以节约点时间来和人聊聊天。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |