lgob简介

lgob的gtk+调用和原始的c版本很类似,这也是我选择lgob的原因.下面我来简述一下lgob,下面是

摘自oschia上的介绍:

" lgob是以GObject为基础一些类库的Lua语言绑定,如GTK+,WebKitGtk,GStreamer,Pango,C

airo等.lgob是小巧而且开销很小的(源码包目前只有170多K),支持各种版本的类库和特性,还有一个

可以用在其他项目/绑定中的代码生成器."

GObject是一种用C语言实现面向对象的框架,GObject仅依赖于GLib和libc;GLib是C语言上的算法

库,相当于c++中的stl,它提供了多种高级的数据结构,如内存块、双向和单向链表、哈希表、动态字符

串等;libc则是linux上的C标准库.由于lua的自身的库很小,很多功能都没有,不过因lua提供了很方便的

CAPI,可以使用C调用轻松lua,反之也是.



下面我通过一个小例子全面的说明.

运行截图

lgob简介
说明,我原来实在ubuntu上使用截的图,显示正常,可是ubuntu不知道怎么回事,突然上不了网,便用liboffice保存为doc,可是到window下居然没图片,只好重新在windows下安装了lgob,可是显示居然乱码了,看来想实现国际化要用语言文件才行!

1 --引入lgob库
 2 require('lgob.gtk')
 3 --创建窗口
 4 window = gtk.Window.new()
 5 --窗口属性设置
 6 window:set('title', "lgob测试", 'window-position', gtk.WIN_POS_CENTER)
 7 window:set_size_request(400, 300) --宽,高
 8 --退出事件
 9 window:connect('delete-event', gtk.main_quit)
10 
11 --事件处理函数
12 function sayHello(data)
13 print(data .. entry:get_text().."!")
14 end
15 
16 --部件布局管理器的一种,固定布局
17 fix = gtk.Fixed.new()
18 
19 --单行文本框
20 entry=gtk.Entry.new()
21 --标签
22 name=gtk.Label.new("请输入你的名字")
23 --按钮
24 button=gtk.Button.new_with_label("问候")
25 --调用信号处理函数
26 button:connect("clicked",sayHello,"你好,")
27 
28 
29 --把部件添加到布局管理器
30 fix:put(name,100,80)
31 fix:put(entry,100,120)
32 fix:put(button,100,160)
33 
34 --向窗口添加布局管理器
35 window:add(fix)
36 
37 --显示所有部件
38 window:show_all()
39 
40 --进入gtk主循环,交给gtk处理
41 gtk.main()

这个例子涉及了gtk里的信号和布局,应该比较全面的展示了gtk的特征.下一篇博客我将

分析如何使用lgob.
原文链接: https://www.cnblogs.com/xdao/archive/2012/11/08/lgob_brief_introduction.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/68658

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午1:26
下一篇 2023年2月9日 下午1:26

相关推荐