Re: [心得] GUI
發現 wxruby 其實是有叫 wx_sugar 的 wrapper...
http://wxruby.rubyforge.org/wiki/wiki.pl?WxSugar
這樣看起來確實是好多了。而我想 wxWidgets 有一個優勢是效率應該不錯,
再加個 wrapper 也許還可以接受
另一方面,就像上一篇提到的,ruby-gnome 我灌不起來,所以就先不試了
因故而又試了 ruby-cocoa
http://rubycocoa.sourceforge.net/
呃呃呃,我是覺得,如果要寫純 mac 程式的話,應該是不錯啦
至少比直接用 obj-c 要來得好(等 obj-c 2.0 看看會不會有大改善?)
可是如果只是要做 GUI 的話,實在不覺得 ruby cocoa 有什麼好的﹍
比較一下程式碼就知道:(但 ruby cocoa 在 mac 上遠比其他 gui 快(廢話﹍))
RubyCocoa:
require 'osx/cocoa'
include OSX
app = NSApplication.sharedApplication
hello = NSWindow.alloc.
initWithContentRect_styleMask_backing_defer [200.0, 300.0, 100.0, 100.0],
15, 2, 0
hello.setTitle 'Hello'
btn = NSButton.alloc.initWithFrame [10.0, 10.0, 80.0, 80.0]
hello.contentView.addSubview btn
btn.setTitle 'Hello World!'
btn.setAction 'stop:'
btn.setBezelStyle 4
hello.display
hello.orderFrontRegardless
app.run
這麼長,而且我暫時找不到按 X 可以讓程式正常結束的方法,預設我猜是隱藏
so do java swing
FXRuby:
require 'rubygems'
require 'fox16'
include Fox
app = FXApp.new
hello = FXMainWindow.new app, "Hello"
FXButton.new hello, "Hello World!"
app.create
hello.show
app.run
wxRuby:
require 'rubygems'
require 'wx'
include Wx
class Hello < App
def on_init
hello = Frame.new nil, -1, "Hello"
StaticText.new hello, -1, "Hello World!"
hello.show
end
end
Hello.new.main_loop
QtRuby:
require 'qt'
include Qt
app = Application.new ARGV
hello = PushButton.new "Hello World!"
hello.resize 100, 30
hello.show
app.exec
當然,幾個程式有設定的東西數量不同,不是很好這樣比,
但是還是可以看出其風格。
wxRuby 走最傳統的繼承改寫風,其他的就都比較用不到繼承
其中最特別的應屬 Qt, 他的 button 可以自成一個 frame!
看來看去覺得還是 Qt 最理想啊 :o
而且同樣可以使用 Qt Designer...
ruby-gnome 不知道能不能用 glade?
等 ruby-gnome 哪天灌成功時再來試吧 XD
只是在 mac 上如果還要灌 gnome 的話,八成又要開 X11,
這樣就實在不理想了﹍﹍
Apple X11 和 Aqua 的整合還滿差的﹍
--
『風車』が廻り続ける度に 『美しき』幻想が静かに紡がれ
『焔』の揺らめきの外に 『腕』を伸ばす愚かな者達 -《Roman》5th Story
『宝石』をより多く掴もうと 『朝と夜』の狭間を彷徨い続ける Track 10
『星屑』の砂の煌めきにも 『葡萄酒』の仄甘い陶酔を魅せ 黄昏の賢者
『賢者』が忌避する檻の中から 『伝言』の真意を彼等に問うだろう
『天使』が别れを告げし時 『地平線』は第五の物語を識る
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.28.18
推
07/25 01:11, , 1F
07/25 01:11, 1F
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章