Ruby 板


LINE

http://blog.godfat.idv.tw/2007/07/ruby-gui.html Ruby GUI 关於 computer science 这个领域,除了程式语言(programming language)与 物件导向(object-oriented)外,再下一个兴趣大概就是使用者图形介面了吧(GUI). 所以我一直想找个自己喜欢的 toolkit 来用,在 C++ 中无非就是 Qt4 了, 不过在 Ruby 中,似乎没有一个比较完美的 solution, 一个个来看。 在这之前,我先说明一下我用过的 C/C++/Java GUI toolkit. 1. MFC, 学校在教如何剪贴 MFC code, 我是叛逆份子,所以一个字都没听进去。 不用别人说很糟,光看第一眼就觉得很糟,更何况他又是被骂得半死的东西。 2. wxWidgets, 这算是我第一个使用的 GUI toolkit, 基本上,我认为这真的 是个很强大的东西,没话说。不过最令人啧啧称奇的应该是他跨平台的能力,如果我 没记错的话,他跨的平台好像比 Java 还多!不过因为风格问题,我不是很喜欢。 基本上,我认为 wxWidgets 的风格有些过於老旧,写起来感觉不是很好。 Ruby binding 叫 wxRuby. 3. Qt, 我想正是因为 wxWidgets 跟我不太合,所以才继续找下去。不料找到 Qt4, 我认为这应该是接近完美的 solution 了。有人说,Qt 至少领先其他人十年,也许 这麽讲并不为过。最令人诟病的,大概就是你只能从 GPL 或超昂贵的商业 solution 两种 license 中选一种。其实我不觉得这对我来说会是很大的困扰,open source 没什麽不好,虽然 GPL 是有点太激进了些。Ruby binding 叫 QtRuby. 4. GTK+, 这个其实我不只没用过,甚至连看都没看过。理由很简单,就是我不想用 C 想用 C++. 当然我知道 GTK+ 评价不错,也有 Glade 和 win32 的 port, 只是似乎没有足够的推力让我去尝尝看。 5. Swing, 会碰这个完全只是因为需要用 Java. 我个人是觉得他跟 wxWidgets 各有千秋,但同样远逊於 Qt. 不过也许这样比较并不太公平,Java 天生就是没 C++ 强。 所以 Qt 远胜可能是理所当然的?Ruby 要用可以使用 JRuby. 6. Ultimate++, 其实这个我没用过,不过看起来是不错。没去试主要有三个原因, 一,他绑 IDE, 这个我很不爽。二,他的命名法我不能接受。三,Qt 很好。XD 其实你去看他的网站,他有一个范例程式,并用各种 toolkit 来实做。我个人认为 这个动作满不诚恳的,他有故意挑其他人弱点的嫌疑。而且各 toolkit 做到的东西 明显有差异,这样比并不公平。不诚恳,不喜欢。 7. Notus/VCF, 这两样 toolkit 都有一个很大的特色,就是 template template and template... 基本上用 C++ 当然是要用 template 啊!! 不过知道这两样东西时我已经有一段时间没碰 GUI 了,所以并没有仔细调查这两个 toolkit 感觉如何。但我想如果没办法接受 Qt 的话,这两套 toolkit 值得一看。 8. .NET/mono, 这个其实我只用过 Visual C++ 2005 Express 稍微拉了一下 介面,感觉还不错,但直接写起程式不知道是什麽感觉。Ruby 要用的话,或许可以试试 IronRuby, 不过我个人对 .NET 没什麽好感,就不去试了。 9. VCL, Borland 的招牌,我用过 Turbo C++ Explorer, 感觉是﹍基本上 我觉得没有 .NET 好的感觉。而且要跨平台恐怕有点难,所以就不考虑了。更何况 这些好像也不算 open source 的吧? 10. FOX, 这个是我最没听过的 toolkit, 是去找 Ruby GUI 时才发现他的存在, 所以我一点都不知道他的状况究竟如何。评价似乎是不错,而且好像很年轻。只是呢﹍ FXRuby 似乎没有 mac 的 port, 而我也已经有点懒得用 C++ 写 GUI 了, 所以还是暂时跳过吧﹍。基本上没有跨 win32/x11/aqua 三大系统的 toolkit, 我就没什麽兴趣试了。 本来只想随意讲一点的,不知不觉就扯多了。接下来看 Ruby 能使用的东西: 1. tk, 没记错的话,这个被 ruby 内建起来了。不过似乎是用过的都说烂, 所以还是不要多考虑吧? 2. FXRuby, FOX 的 ruby binding, 评价相当不错,唯一的缺点也许是 还没有 mac 版的样子?我想未来应该值得继续关切,虽然我还没看过他程式 写起来像什麽样子。要试用的话,除了需要安装 FOX, FXRuby 就: gem install fxruby 3. wxRuby, wxWidgets 的 ruby binding, 我是看到有人批评写起来像在写 C++, 这应该算是一个满大的缺点,不过看在他功能强大,跨平台能力惊人的份上, 还是值得试试看吧。要试用的话,除了需要安装 wxWidgets, wxRuby 就: gem install wxruby 4. QtRuby, Qt3 与 Qt4 的 ruby binding, 基本上评价仍然是相当地好, 唯一的两大缺点,第一个是没有 gem, 不能 gem install qtruby, 第二个是 在 windows 上要安装似乎非常困难,没有简单的方法。但我相信假以时日,这两个 问题都能够解决(呜呜)。 5. Swing, 要灌 JRuby, 我的 macports 似乎找不到 jruby, 我又不想从 sun 的网站抓下来灌,再说,我也没喜欢过 swing 过,所以就懒得试了。 6. Mono, 我有灌 mono, 不过不是很清楚能不能用 IronRuby 之类的东西存取, 之所以写在这,算是做个笔记,说不定可以使用这样。 7. GTK+, 我不是很确定有没有 ruby binding, 但我想应该会有才是。不试的理由 同上,所以也只是暂时笔记。 Ruby 的 GUI 比较有名的大概就这几个了吧。其实我是一直想试 QtRuby 的, 虽然 windows 上似乎不太容易使用,但相信假以时日一定可以的。而让我却步最大的 问题点在於,不能用 gem 安装,macports 也找不到 QtRuby. 也就是说, 我得亲自 ./configure make make install, 但我不喜欢这样,管理不便。 所以我决定还是暂时放下他,等他有 gem 或是 port 时再说吧! FXRuby 因为没用过 FOX, 所以也还是放着再说。更何况据说是没有 mac 版, 那我试屁啊﹍。所以左右思量之下,我还是决定先试 wxRuby! 安装方便, 强大的跨平台能力,虽然是 C++ style 而非 the ruby way, 但对我来说 C++ style 也不是那麽地令人排斥,也许有点诡异,但我觉得也可以用自己想要的 方式重新 wrap 一次,对 ruby 来说那是如此简单的事! so have a try with wxRuby! this is the hello world: require 'rubygems' require 'wx' class HelloWorld < Wx::App include Wx def on_init helloframe = Frame.new nil, -1, "Hello World" StaticText.new helloframe, -1, "Hello World" helloframe.show end end HelloWorld.new.main_loop sudo port install wxwidgets sudo gem install wxruby 作者: godfat 真常 在 7/22/2007 12:52:00 下午 -- Nobody can take anything away from him. Nor can anyone give anything to him. What came from the sea, has returned to the sea. Chrono Cross --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.28.18
1F:推 SHBK:有ruby-gtk呀~ 07/24 13:43







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP