Skip to content
CicholGricenchos edited this page Mar 17, 2015 · 7 revisions

ShenmeGUI是受Shoes启发而诞生的GUI工具,拥有相似的DSL语法,适合一些轻量的GUI需求。而与之不同的是,ShenmeGUI借助HTML构建视图。

程序将DSL语句转化为HTML结构,并使用Javascript绑定上一些事件,使HTML的前端和Ruby的后端可以进行双向的数据同步。

前端视图的变化会立即同步到后端(通过对input等事件的监听),若触发事件,则会额外传递一个事件信号。后端接收到事件信号则执行相应的回调函数,对控件属性的修改也会即时反映到HTML视图。

前后端的数据通信是通过WebSocket实现的。

工作时序图:

require 'shenmegui'

ShenmeGUI.app do
  @var = 1
  your_code_goes_here

end

ShenmeGUI.debug!
ShenmeGUI.start!

ShenmeGUI程序必须包含在ShenmeGUI.app的代码块内,此代码块内所有代码的上下文环境都是ShenmeGUI:Module,所以可以通过实例变量共享数据,若使用局部变量,则要保证双方在同一个代码块中。

ShenmeGUI.debug!可以开启一个类似irb的调试,在程序运行的命令行里允许输入指令,并将被放入ShenmeGUI的上下文运行。

ShenmeGUI.start!开启websocket监听,并在浏览器中打开生成的html文件(可能只能在windows下生效,别的系统可以手动打开index.html)。

目前ShenmeGUI使用的样式是复古的Win98风格,修改自windows_98.css。以后可以支持自定义样式。

Clone this wiki locally