【wxlua教程三】开始例程
来源:互联网 发布:淘宝假物流单号怎么办 编辑:程序博客网 时间:2024/05/01 23:12
说明:
这一篇就开始讲wxlua的使用了,wxlua可以集成在你的C++程序里,
也可以当成一个独立的库给lua调用。
我这里假设你已经有一些lua基础,了解面向对象编程。
本系列托管在github上
相关链接
维基面向对象页面
wxlua官网
如何运行wxlua程序
wxlua本质是lua脚本,用lua解释器可以成功运行,因为需要载入wx库,
所以wx库文件要放在lua可以寻找到的地方。通常放在程序根目录,在别的地方要设置好 package.cpath
变量。
运行lua -e "require('wx')"
无错误提示说明成功。
创建一个最小的wxlua程序
在当前目录下新建一个lua文件,将下列代码复制进去
require("wx") frame = wx.wxFrame( wx.NULL, wx.wxID_ANY, "wxLua Very Minimal Demo" ) frame:Show(true) wx.wxGetApp():MainLoop()
另存为test.lua,命令行lua test.lua
将弹出一个无内容的窗口。
代码解读
我们要使用wxlua库当然要载入wx库啦,所以第一行就是载入wx库用的。
一个图形程序都要有一个窗口,第二行就是创建窗口(也称为框架 frame。主窗口除了框架外还可以是对话框dialog)
有了窗口要让它显示对吧,就是第三行的作用。
注::
号是lua中的一个语法糖,frame:Show(true)
等价于frame.Show(frame,true)
就是把它本身当作一个参数传递进去。这样的写法更符合C++中写法frame->Show(true);
.
为什么创建的窗口不会自动弹出而要设置呢,因为在一个实际的项目中,窗口不只一个,如果每创建一个窗口都自动弹出的话,程序打开时那不就会有一大推窗口了?所以调用这个函数在需要时,更符合实际。
每一个窗口程序不可能在所有的时间都在运算,它的大部分时间都在等待事件的发生,
之后调用对应的事件处理函数处理事件。 wx.wxGetApp():MainLoop()
函数就是用来进入等待模式的,一个主循环,判断有无事件的发生,反正记住,这个函数在每一个wxlua程序里通常只能出现一次且在代码最后调用。
关于Frame类
一个框架类,是大部分控件的容器,用来放置控件的。
构造函数
wxFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "wxFrame")
参数说明
parent:框架的父窗口,也是大部分控件所必须的一个参数,默认是wx.NULL(空),
那么这个窗口称为顶级窗口。
id 每一个控件的唯一标识符,是一个数字,也是大部分控件所必须的一个参数,-1 代表由系统自动生成。
title 窗口标题
pos 位置,就是窗口左上角与显示屏左上角的坐标,类型为wxPoint,可以用函数wxPoint(x,y)创建。
size 大小,类型为wxSize,用wxSize(x,y)创建
style 窗口风格,具体的去看wxwidget参考手册,
(注: 参考手册中关于风格的|号在lua中用+号代替,^用-号代替)
name 名字,用来追踪bug用的)
- 【wxlua教程三】开始例程
- 【wxlua教程一】搭建环境
- 【wxlua教程二】关于wxlua库的大小
- 开始例程,结束例程,专家例程
- wxLua 扩展
- Android 传感器(Sensor)API教程 (三) 传感器值取得例程及处理流程
- Ext2.0教程三:Ext2.0从新建窗口开始
- Ext2.0教程三:Ext2.0从新建窗口开始
- wxLua 2.8.10 - FAQ
- Ubuntu 安装 wxlua
- 基于框架(三)的例程
- PMAC运动程序例程(三)
- 开始例程----保留60天的数据
- wxLua 如何打包生成可执行文件
- AISO教程UDP组播的例程
- Creat_average_shape_model.hdev例程相关学习(三)
- halcon例程 -- 逐字细究(三)
- Windows Presentation Foundation (WPF) 3D 教程(三) ----从下面的代码开始
- 【wxlua教程二】关于wxlua库的大小
- Maven常用插件
- java 并发机制---线程调用栈
- 大数据时代医疗行业爆发 政策壁垒仍是最大障碍
- hdu 1625 Numbering Paths 最短路的变形,使用Floyd 外加判环
- 【wxlua教程三】开始例程
- 栈溢出攻击系列:shellcode在linux x86 64位攻击获得root权限(四)linux下进程内存布局
- Android 3D游戏开发技术详解与典型案例
- leetcode-58 Length of Last Word
- 【饥荒】介绍一些组件
- HDU 1114 Piggy-Bank
- Service 学习一
- 求先序排列 蓝桥杯
- SSIS批量导入excel表