erlang wx图形界面学习-1

来源:互联网 发布:小米无人机淘宝加价 编辑:程序博客网 时间:2024/05/19 18:43

学习erlang已经有一段时间了,记得当初学java最感兴趣的是做那些坦克大战,贪吃蛇的时候,乐此不疲啊.虽然知道erlang wx也能够做图形界面,但是没找到什么教程,自己也不愿意去慢慢了解,学习,就没去管它了.只是最近感觉做什么都提不起干劲来,需要给自己的生活注入一些活力,决定好好看看wx这方面的东西,正好erlang里面有一个sudoku的例子,就拿它来好好学习一下,重燃我的游戏之魂.

首先,我们先来看下最简单的:hello world.
/usr/local/lib/erlang/lib/wx-1.6.1 我电脑wx的代码在这个位置,先把它copy放到桌面,好方便对它做修改,学习.先看下example/simple下的hello.erl,这应该是一个最简单的代码代码了.
hello:start(). 显示一个最简单图形界面,内容hello world! 让我们去看看他是如何实现的.

Wx = wx:new() 启动一个wx server,返回wx_boject().
Frame = wx:batch(Fun()). 执行Fun()所有的内容,最后返回一个Frame,Fun()执行了create_window(Wx).

-spec new(Parent, Id, Title, [Option]) -> wxFrame() when    Parent::wxWindow:wxWindow(), Id::integer(), Title::unicode:chardata(),    Option :: {pos, {X::integer(), Y::integer()}}         | {size, {W::integer(), H::integer()}}         | {style, integer()}.

wxFrame:new/4 :4个参数,最后返回一个wxFrame().
wxFrame:createStatusBar/2 创建StatusBar控件,显示文字和图片.
wxFrame:connect/2,和事件监听一样,当事件发生的时候发送一个消息给Frame
wxFrame:setStatusText/3,给控件赋值文字.
wxWindow:show/1 显示Frame

总的来说就是创建一个框架Frame,然后往里面塞东西如StatusBar添加控件,statusText添加文字.
hello2.erl 和hello一样的,只是hello2调用了 wx_object:start_link/3,跟gen_server类似,产生一个进程,然后回调使用handle_call/3 ,handle_info/2等. simple中还有menu.erl 和minimal.erl这边就不一一介绍了,接下来就开始我们的suduku

原创粉丝点击