初次使用Glade3
15 七 2010 21 Comments
in C, Linux Tags: C, GTK+, ubuntu
Glade是用来设计Gtk+程序界面的工具,暑假才开始学习Gtk+,看着代码好多,特别要写菜单的时候,真的很麻烦,更糟糕的是照着我那本从图书馆借来的指导书上写是错的……一直在Warning,虽然编译凑合着过了,但是界面有错,和我构想的差距太大。
在网上查找原因时发现了这个软件,摸索了一下,终于出了一个简易的界面。
首先在Glade3中设计一个简单的界面。从图上可以看出,这个界面有一个叫做“window”的窗口,接着窗口下有个垂直排布的盒状容器“vbox”,盒子的最上头放着一个叫做“menubar”的菜单栏,菜单栏里有若干菜单就不管它了……
在“window”的“信号”标签下,在“GtkWidget”类中找到“delete-event”,为其“操作句柄”选择为“gtk_main_quit”。同样,在“GtkObject”类的“destory”也选择“gtk_main_quit”。这样做的目的是在用鼠标点击窗口上的“X”时可以正常退出程序,否则只能关闭图形界面,程序依旧在运行。
然后保存为*.glade文件。
再然后就是在glade文件相同目录下建立一个C源码文件。
文件如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <gtk/gtk.h> int main(int argc,char* argv[]) { GtkBuilder *builder; GtkWidget *window; GtkWidget *vbox; GtkWidget *menubar; gtk_init (&argc,&argv); builder=gtk_builder_new(); gtk_builder_get_object(builder,"window"); gtk_builder_add_from_file(builder,"文件名.glade",NULL); window=GTK_WIDGET(gtk_builder_get_object(builder,"window")); vbox=GTK_WIDGET(gtk_builder_get_object(builder,"vbox")); menubar=GTK_WIDGET(gtk_builder_get_object(builder,"menubar")); gtk_builder_connect_signals(builder,NULL); g_object_unref(G_OBJECT(builder)); gtk_widget_show_all(window); gtk_main(); return 0; } |
其中
1 2 3 | GtkWidget *window; GtkWidget *vbox; GtkWidget *menubar; |
就是声明刚才的组件变量。
1 2 3 | window=GTK_WIDGET(gtk_builder_get_object(builder,"window")); vbox=GTK_WIDGET(gtk_builder_get_object(builder,"vbox")); menubar=GTK_WIDGET(gtk_builder_get_object(builder,"menubar")); |
通过这些组件的名字从刚才建立的glade文件中调用相应的组件。
编译运行就是这样的了!
21 Comments (+add yours?)
Leave a Reply
RSS
Twitter
Facebook
新浪微博
Tumblr

七 16, 2010 @ 21:33:32
使用 Glade 设计UI是简单了,简单的容器组合是没有问题的,不过自己派生的新构件类可否方便的使用呢?
给评论打分:
0
0
七 16, 2010 @ 21:40:42
还没用到那么高深的东西,完全一个初学者,学GTK+才一周呢
给评论打分:
0
0
七 16, 2010 @ 14:19:56
厉害。。。。
给评论打分:
0
0
七 16, 2010 @ 19:29:48
嘿嘿,还不到厉害的程度呢
给评论打分:
0
0
七 16, 2010 @ 12:21:37
上面板的东西好多….
给评论打分:
0
0
七 16, 2010 @ 12:50:30
可以一目了然,呵呵
给评论打分:
0
0
七 16, 2010 @ 11:20:14
这个简易的界面也挺复杂的说
给评论打分:
0
0
七 16, 2010 @ 11:33:43
如果完全靠代码表示那就更加恐怖了,看了直晕
给评论打分:
0
0
七 16, 2010 @ 00:06:15
学习的有力 。
给评论打分:
0
0
七 16, 2010 @ 08:48:11
随便做做,要不暑假无聊
给评论打分:
0
0
七 15, 2010 @ 23:44:23
初一看还以为是做音乐的软件!不知道这个是用来做什么的,编程算什么语言?
给评论打分:
0
0
七 15, 2010 @ 23:47:49
设计程序界面的工具。
我用的是C语言。
还没到做出软件的水平,自学还没超过一周呢,进度缓慢。
给评论打分:
0
0
七 15, 2010 @ 23:39:10
太高深了。。。
给评论打分:
0
0
七 15, 2010 @ 23:48:51
慢慢摸索,其实我也不是很懂。
只是有些东西不容易在网上找到,在这里做个记录,以后有用的时候再看
给评论打分:
0
0
七 16, 2010 @ 00:18:01
我对电脑的所有了解基本上都是跟电脑多年不懈作战得到的,呵呵,用到什么就搜索什么
给评论打分:
0
0
七 16, 2010 @ 08:49:48
差不多吧,不过不是什么都容易搜索到的。很多只能搜索到英文的内容,中文内容都是千篇一律,都是Ctrl+V的,而且还都是不能用的……
给评论打分:
0
0
七 16, 2010 @ 10:03:44
中文搜索差不多什么都是千篇一律,Ctrl+V出来的,连论文都是,唉
英文一般的东西还行,跟计算机有关的,还真看不懂,术语太多了。。。
给评论打分:
0
0
七 15, 2010 @ 23:15:09
高手,这个和你学的专业有关么?
给评论打分:
0
0
七 15, 2010 @ 23:33:21
貌似没啥关系。
我这专业用QT的比较多,在嵌入式设备上做界面的。
给评论打分:
0
0
七 15, 2010 @ 23:42:39
嵌入式设备是不是就像手机那种东西?
给评论打分:
0
0
七 15, 2010 @ 23:46:08
是的,手机、GPS导航仪、MP3、MP4播放器。
还有很多,比如街头闪烁的霓虹灯、广告牌什么的,就是用这些控制的。
给评论打分:
0
0