• 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,反之也是.

    下面我通过一个小例子全面的说明.
    运行截图

    说明,我原来实在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.


    作者:半山
    出处:http://www.cnblogs.com/xdao/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    BZOJ5308 ZJOI2018胖
    BZOJ5298 CQOI2018交错序列(动态规划+矩阵快速幂)
    423. Reconstruct Original Digits from English
    422. Valid Word Square
    277. Find the Celebrity
    419. Battleships in a Board
    414. Third Maximum Number
    413. Arithmetic Slices
    412. Fizz Buzz
    285. Inorder Successor in BST
  • 原文地址:https://www.cnblogs.com/xdao/p/lgob_brief_introduction.html
Copyright © 2020-2023  润新知