• pygtk及luagtk在Ubuntu12.04下开发环境配置


            这里有一篇文章已经写的很详细了我就不重复了,地址为http://www.linuxidc.com/Linux/2012-06/62415.htm 
    为什么还是选择ulipad,主要原因是ulipad支持lua。
    安装pygtk
    pygtk的安装这个较简单
    直接sudo apt-get install python-gtk2 python-gtk2-dev python-gtk2-doc python-gtk2-tutorial
    使用ulipad可以直接补全pygtk中的函数.
    安装lua
    sudo apt-get install lua5.1
    ulipad lua配置在工具插件管理里勾上lua插件并重启,新建lua文件,打开“编辑-参数”配置如下图
    安装gtk的lua绑定
    安装lgi和lgi-dev,gtk+的官方lua绑定,
    sudo apt-get install lua-gi lua-lgi-dev
    从lgi的github上下载源码包,https://github.com/pavouk/lgi或者git clone https://github.com/pavouk/lgi.git
    源码包里面有示例代码。
    非官方的有lgob,http://oproj.tuxfamily.org/wiki/doku.php?id=lgob 由于lua和gtk都是跨平台的,这两
    绑定大概也是跨平台的,不过我只找到了lgob已编译好的跨平台二进制包,下载地址为
    http://downloads.tuxfamily.org/oproj/bin/   ubuntu需要下载ubuntu32下的所有deb包,按照顺序安装。
    用git下载lgob源码包git clone git://gitorious.org/lgob/mainline.git lgob
    大概看了一下二者,其中lgi的封装比lgob好,文档支持也好,不过我还是选择了lgob,下面是两者的
    helloworld片段,从中可以看到,lgob的事件处理更类原始的gtk,而且和pygtk也类似,并且导入
    gtk包也比lgi简单点,所以最后我选择了lgob。
    lgob
    #! /usr/bin/env lua
    require('lgob.gtk')
    local window = gtk.Window.new(gtk.WINDOW_TOPLEVEL)
    window:connect('delete-event', gtk.main_quit)
    window:show_all()gtk.main()
     
    lgi
    #! /usr/bin/env lua
     
    --
    -- Sample GTK Hello program
    --
    -- Based on test from LuiGI code.  Thanks Adrian!
    --
     
    local lgi = require 'lgi'
    local Gtk = lgi.require('Gtk')
     
    -- Create top level window with some properties and connect its 'destroy'
    -- signal to the event loop termination.
    local window = Gtk.Window {
       title = 'window',
       default_width = 400,
       default_height = 300,
       on_destroy = Gtk.main_quit
    }
     
    if tonumber(Gtk._version) >= 3 then
       window.has_resize_grip = true
    end
     
    -- Create some more widgets for the window.
    local status_bar = Gtk.Statusbar()
    local toolbar = Gtk.Toolbar()
    local ctx = status_bar:get_context_id('default')
    status_bar:push(ctx, 'This is statusbar message.')
     
    -- When clicking at the toolbar 'quit' button, destroy the main window.
    toolbar:insert(Gtk.ToolButton {
     stock_id = 'gtk-quit',
     on_clicked = function() window:destroy() end,
          }, -1)
     
    -- About button in toolbar and its handling.
    local about_button =  Gtk.ToolButton { stock_id = 'gtk-about' }
    function about_button:on_clicked()
       local dlg = Gtk.AboutDialog {
          program_name = 'LGI Demo',
          title = 'About...',
          name = 'LGI Hello',
          copyright = '(C) Copyright 2010, 2011 Pavel Holejšovský',
          authors = { 'Adrian Perez de Castro', 'Pavel Holejšovský', },
       }
       if tonumber(Gtk._version) >= 3 then
          dlg.license_type = Gtk.License.MIT_X11
       end
       dlg:run()
       dlg:hide()
    end
    toolbar:insert(about_button, -1)
     
    -- Pack everything into the window.
    local vbox = Gtk.VBox()
    vbox:pack_start(toolbar, false, false, 0)
    vbox:pack_start(Gtk.Label { label = 'Contents' }, true, true, 0)
    vbox:pack_end(status_bar, false, false, 0)
    window:add(vbox)
     
    -- Show window and start the loop.
    window:show_all()
    Gtk.main()
     
     
     


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

  • 相关阅读:
    cocos2dx for xna 基于地图的碰撞检测和信息提示
    cocos2dx for xna实现人物不同方向行走
    coco2dx for wp7之页面跳转特效
    cocos2dx for wp之精灵动作——Actions
    利用webxml来构建wp的天气预报
    cocos2dx for wp 之Box2D游戏是男人就坚持60M(一)
    cocos2dx for wp之TexturePackerGUI工具使用
    cocos2dx for wp 之Box2D的应用
    cocos2dx for xna 地图编辑
    WPF触发器(Trigger、DataTrigger、EventTrigger)
  • 原文地址:https://www.cnblogs.com/xdao/p/pygtk_luagtk.html
Copyright © 2020-2023  润新知