- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
wxlua教程
Wxlua 教程
2013-3-4
Wxlua是lua for windows 自带的比较强大界面库,当然自带的还有iup,iup虽然用起来非常方便,但是功能不够齐全。如果你对iup有兴趣,可以下载我的iup简单介绍。Wxlua是wxwidgets封装的,所以熟悉wxwidgets的话。Wxlua更本不需要学习。Wxlua英文文档貌似只有一篇api参考,中文文档基本没有,不过到是有不少例子,但是都好像比较难懂,最长的还有几千行的,谁敢看啊,所以学习起来是非常艰难的。其实在我写这篇文档时候,我也还是个菜鸟。那么这篇文档献给那些比我还菜的菜鸟把。
好了,我们开始把。
首先新建一个文本文档改名为“1.wlua”,注意后缀是wlua,因为使用wlua运行来不会显示那个烦人的黑色命令窗口。
然后右键单击选择edit script,然后就可以开始写代码了。这两步估计没人不会把。
那么写wx程序我们必须包含他的包进来,所以一般程序开头都会写
require ‘wx’
首先我们学习创建一个简单的窗口。
window=wx.wxFrame(wx.NULL,wx.wxID_ANY,First window)
上面这句就是创建一个对话框。第一个参数为窗口的父节点。这里我们填null,因为他不需要父节点。那为什么要填父节点呢,做过相关工作的人应该不陌生。简单说是因为指定父节点后,我们的程序才能找到这个控件(就是一个窗口或者一个按钮等),对父节点的操作也会对子节点影响,比如移动父节点的位置,显示和隐藏等。不知道这样解释对不对。
第二个参数是他的id,我们这里填的是任意id。那为什么又要填id呢。因为我们可以用一个唯一的id来标识我们定义的控件。在我们给他绑定事件的时候方便。不过一直用任意id都可以。
第三个参数为窗口名字。
当然这个函数还有其他的一些参数。那我这里就不介绍了。
那么,创建了这个窗口还没有显示出来我们应该调用显示函数
window:Show()
接下来就是每个一句进入循环状态。然后开始处理事件啊显示工作啊等。其实你完全可以当作这一句是默认每个程序必须写的就ok:
wx.wxGetApp():MainLoop()
有了这三句我们第一个wxlua窗口程序就写完了。运行一下试试把
按钮
我们为我们的窗口添加一个button。
添加button我们调用wx.wxButton
utton1 = wx.wxButton(window, wx.wxID_ANY, “button1”)
把这句加在上一节的代码中我们就可以运行了
哈哈,是不是看到一个很大的button了。
我们再给他添加一个事件,当点击他的时候弹出一个消息框给我们。
这个Connect函数是wxobject的成员函数,所有继承他的子类都可以调用,意思是把一个事件绑定到一个函数,当这个事件发生的时候,会自动调用这个函数。这里我们把按钮被点击的事件和这个函数绑定,来打印一串消息。
Ok让我们再加一个button,当他点击的时候显示不同的消息。
button2 = wx.wxButton(window, wx.wxID_ANY, “button2”)
那这个时候,你会发现两个button只显示了一个,其实另外一个被盖住了,我们要从新设置另外一个的位置
button2 = wx.wxButton(window, wx.wxID_ANY, button2, wx.wxPoint(50, 50))
或者我们可以调用Move函数来直接设置button2的位置, Move是wxWindow的成员函数,
wxButton - wxControl - wxControl - wxWindow
Button也可以调用window的成员函数
button2:Move(50,50)
现在我们有两个button了点击两个button都会显示button1 clicked
我们如何才能点击button2显示button2 clicked呢。也许你会想到通过button的名字来判断。这也是一种方法把。我们可以用id来标识我们的button。就如我们一开始讲的wxID_ANY。
我们把第一个button的id改为1, 第二个button的id改为2
button1 = wx.wxButton(window, 1, button1)
button2 = wx.wxButton(window, 2, button2)
button2:Move(50,50)
然后分别给他们的点击事件绑定函数
window:Connect(1, wx.wxEVT_COMMAND_BUTTON_CLICKED,function(event)print(button1 clicked) end)
window:Connect(2, wx.wxEV
文档评论(0)