lgob函数调用分析
由于lgob没有文档,很多时候不知道如何使用,不过作者提供一些例子,而且lgob的函数名和原C的
函数名类似,遇到不懂的查看一下例子和gtk的参考文档都可以解决.
1.部件的使用. lgob的部件名去掉了原C中的Gtk前缀,通过gtk"类",new()函数创建.
C代码
GtkWidget *window;
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
lgob代码
window = gtk.Window.new(gtk.GTK_WINDOW_TOPLEVEL)
2.常量的使用.比原C要多加上"gtk." ,如上例中的gtk.GTK_WINDOW_TOPLEVEL
3.部件属性设置
如窗口的属性设置
C代码
gtk_window_set_default_size(window,400,300);
gtk_window_set_title(window,"gtk窗口");
gtk_window_set_position(window,GTK_WIN_POS_CENTER);
lgob代码,非常简洁,而且属性的顺序可以颠倒
window:set("title","lgob测试","default-width",400,"default-height",300,
"window-position",gtk.WIN_POS_CENTER)
注意带有"GTK_"前缀的,"GTK_"前缀要去掉.如GTK_WIN_POS_CENTER变为
gtk.WIN_POS_CENTER. 属性的查找方式如图:
如查找GtkWidow的属性,打开devhelp后,点击"Properties"可以看到各种属性,及其取值
对于没有"Properties"的属性,如 gtk_window_set_screen()
直接使用window:set_screen()
4.信号及回调函数,如上图,点击“signal”可以看到当前部件可用的信号。
C代码
// 产生信号的部件
信号名称
回调函数
信号附带的数据
g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(sayHello),
"你好");
lgob代码,不需要"产生信号的部件"
-- 信号名称
回调函数
信号附带的数据
button:connect("clicked",sayHello,"你好")
两者"信号附带的数据"都可以为空,C语言设为NULL ,lua中直接不写.
5.gtk相关的库
与c类似,也需要额外的引入语句,如要显示带图标的按钮
require('lgob.gdk')
6.内部图标命名
使用stock可以创建带有图标的部件如
new_from_stock("gtk-quit") --从stock创建
--在devhelp中搜索stock items 可以看到各种stock,lgob的命名只是把"GTK_STOCK_XXX"换成了"gtk-xxx"
总结,lgob与Gtk的C
API非常类似,而且要简洁,还有很多时候要把"GTK_"换成"gtk."
由于我也只是看了一点,有误之处敬请指正!
作者:半山
出处:http://www.cnblogs.com/xdao/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。