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.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM