在Ubuntu中,用APT安装
sudo apt-get install glade-3 glade-gnome-3
Glade3已经比较好的做到了界面与程序分离。安装好后,在菜单中打开Glade,但开始编辑界面,其使用很简单,有过MS开发的经验,很容易上手。
画好界面后,保存为.glade文件。
下面就是主要内容,如何在python中调用Glade画的界面
#!/usr/bin/env python
#test
#导入必要的包
import pygtk
import gtk
import gtk.glade
def button1_clicked(widget):
print "hello glade!"
def window1_delete_event(event,widget):
return False
# 调用*.glade文件
gladefile=”gui.glade”
# 将glade文件中的界面导入到wTree中
wTree=gtk.glade.XML(gladefile)
# 建立一个字典描述各个信号量的处理函数
# “on_window1_destroy”的处理方法是gtk.main_quit,即主程序退出.
# 其他按键的处理方法是各自的处理函数.
dic={
“on_window1_delete_event”:window1_delete_event,
“on_window1_destroy”:gtk.main_quit,
“on_button1_clicked”:button1_clicked
}
# 将dic与控件的signal连接
wTree.signal_autoconnect(dic)
#获得主窗口变量,并显示
wTree.get_widget(”window1″).show()
#程序运行
gtk.main()
保存到test.py,运行程序
python gui.py
备忘:使用C语言调用glade文件
虽然目前没有学习C语言调用Gtk+,不过留个备忘吧
//test.c
#include <gtk>
#include <glade/gtk>
GtkWidget * label1,*window1;
void on_window1_destroy(GtkWidget *widget, gpointer user_data) {
gtk_exit(1);
return FALSE;
}
// 定义buttonsum按键的clicked处理函数
void on_button1_clicked(GtkWidget *widget, gpointer user_data) {
//
}
// 主函数
int main(int argc, char *argv[]) {
GladeXML *xml;
GtkWidget * button1;
gtk_init(&argc, &argv);
// 加载calc.glade文件
xml = glade_xml_new(”gui.glade”, NULL, NULL);
// 连接控件signal到处理函数,处理函数与控件signal的handle同名.
glade_xml_signal_autoconnect(xml);
window1 = glade_xml_get_widget(xml,”window1″);
button1 = glade_xml_get_widget(xml,”button1″);
gtk_signal_connect(GTK_OBJECT(button1), “clicked”,GTK_SIGNAL_FUNC (on_button1_clicked), None);
/* start the event loop */
gtk_main();
return 0;
}
// END
以上代码没有经过调试,不知其正确与否,只能作为一个参考
编译这个程序,然后运行:
gcc -o test test.c `pkg-config –cflags –libs libglade-2.0`
$ ./test