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燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP