Linux GTK编程示例

摘要:
1#包括 23staticvoidhelloWorld(GtkWidget*wid,GtkWidget*win)4{5GtkWidget*dialog=NULL;6dialog=gtk_message_dialog_new(gtk_WINDOW(win),gtk_dialog_MODAL,gtk_message_INFO,gtk_BUTTONS_CLOSE,“地狱”
 1 #include <gtk/gtk.h>
 2 
 3 static void helloWorld(GtkWidget *wid, GtkWidget *win)
 4 {
 5     GtkWidget *dialog = NULL;
 6     dialog = gtk_message_dialog_new(GTK_WINDOW(win), GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "Hello World!");
 7     gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER);
 8     gtk_dialog_run(GTK_DIALOG(dialog));
 9     gtk_widget_destroy(dialog);
10 }
11 
12 int main(int argc, char *argv[])
13 {
14     GtkWidget *button = NULL;
15     GtkWidget *win = NULL;
16     GtkWidget *vbox = NULL;
17   
18     // g_log_set_handler("Gtk", G_LOG_LEVEL_WARNING, (GLogFunc) gtk_false, NULL);
19     gtk_init (&argc, &argv);
20     // g_log_set_handler("Gtk", G_LOG_LEVEL_WARNING, g_log_default_handler, NULL);
21   
22     win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
23     gtk_container_set_border_width(GTK_CONTAINER(win), 8);
24     gtk_window_set_title(GTK_WINDOW(win), "Hello World");
25     gtk_window_set_position(GTK_WINDOW (win), GTK_WIN_POS_CENTER);
26     gtk_widget_realize(win);
27     g_signal_connect(win, "destroy", gtk_main_quit, NULL);
28   
29     /* Create a vertical box with buttons */
30     vbox = gtk_box_new(TRUE, 6);
31     gtk_container_add(GTK_CONTAINER(win), vbox);
32   
33     button = gtk_button_new_with_label("hello");
34     g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(helloWorld), (gpointer)win);
35     gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, TRUE, 0);
36     button = gtk_button_new_with_label("exit");
37     g_signal_connect(button, "clicked", gtk_main_quit, NULL);
38     gtk_box_pack_start(GTK_BOX (vbox), button, TRUE, TRUE, 0);
39   
40     gtk_widget_show_all(win);
41     gtk_main();
42     return 0;
43 }
1 all:
2     @#gcc -Wall -g -o app main.c `pkg-config --cflags --libs gtk+-3.0`
3     @gcc -Wall -g -o app main.c -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0
4 
5 run:
6     ./app
7 
8 clean:
9     @rm -rf ./app

免责声明:文章转载自《Linux GTK编程示例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇怎么让 Lua 5.3.4 支持中文变量名和中文函数名java中的TCP SERVER代码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MASM32快速起步

MASM32是一个免费的软件程序,让您编辑Microsoft宏汇编程序(MASM)代码从一个基本的文本界面。它强调MASM代码各部分以不同的颜色,使其更容易扫描和检测错误。它提供了一个简单的布局程序员手动编辑代码,没有任何花哨的功能或选项的常规Microsoft宏汇编。注意MASM32编辑器实际上并没有让你运行或编译的代码。对于这一点,你仍然需要Micros...

如何在linux中解压.rar文件

在liunx下原本是不支持rar文件的,需要安装liunx下的winrar版本 步骤:   1.http://www.rarsoft.com/rar/rarlinux-4.0.1.tar.gz 从这个网址下载所需的压缩包  2.将压缩包上传到linux服务上并且解压   3.使用cd切换到解压后的目录      如:cd /usr/local/rar...

【转帖】C++编译原理 资料

转自:http://blog.csdn.net/shiwenbin333/article/details/5157797 首先是预编译,这一步可以粗略的认为只做了一件事情,那就是“宏展开”,也就是对那些#***的命令的一种展开。       例如define MAX 1000就是建立起MAX和1000之间的对等关系,好在编译阶段进行替换。       例如...

修改linux iptable规则

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允许80端口通过防火墙)-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允许3306端口通过防火墙)放在22端口下面...

从零开始写操作系统(基于XV6):echo重写与并发进程控制功能构思

像这种教学目的操作系统(例如XV6 Minix)是不能小看的。 比如上古传说Linus Torvalds大神在上Minix操作操作系统课时突发奇想! 在芬兰的赫尔辛基大学用Minix操作平台建立了一个新的操作系统的内核,他把它叫做Linux。 我也希望走走人家大神当年走的路. 关于xv6 的编译,为了能够重写拓展xv6需要将修改后的xv6重新编译 1.要将...

Linux下解压缩文件命令总结

---------------------------------------------tar命令: -v 可视化-c 新建包-f 指定文件名(除非你用默认用户名)-x 解压target.tar-r 增加file文件到target.tar-t 列出target.tar中的文件-u 更新target.tar中的file文件-z 调用gzip-j 调用bzi...