linux下gtk开发环境搭建

您所在的位置:网站首页 ubuntu不支持gtk了吗 linux下gtk开发环境搭建

linux下gtk开发环境搭建

2024-06-30 14:19| 来源: 网络整理| 查看: 265

环境搭建

安装必要的工具

apt install libgtk-3-dev pkg-config

可以安装额外的example包,里面提供的一些demo程序是非常好的参考

apt install gtk-3-examples

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