用Ruby來開發GUI程式

germo發表於2021-09-09


無意中發現了Ruby寫的GUI黑白棋遊戲(讓我想起了當年的文曲星)!

把指令碼下載以後,發現沒有tk84.dll,網上找資料,發現需要安裝叫ActiveTcl的元件。

可以在下面地址下載:

[url][/url]

安裝ActiveTcl後,可以在bin目錄下找到tk84.dll檔案,把這個檔案複製到Ruby的lib目錄下。然後就OK了。

然後又找了點資料來系統的說明下Ruby的GUI程式開發:

1.       首先我們需要一個TK檔案。

下載地址在上面給出的連結,比較鬱悶的是PR2ED說TK是隨Ruby一起發行的,可是為什麼我需要另外安裝呢?誰給個解釋?

TCL全稱是tool command language,也就是工具命令語言.他是一種解釋型指令碼語言.弱型別,大小寫敏感.一般在linux下應用較多,不過在windows下面也有移值版本. TCL/TK的官方編輯環境是activestate activetcl。在Proggramming Ruby第二版的十九章也介紹了TK,但是沒有比較全面的Ruby/TK文件。

2.   然後我們就可以編寫一些簡單的應用來說明了:

下面是兩個小例子:

1).

require ‘tk’

TkLabel.new{text ‘Hello,world’;pack}

Tk.mainloop

 

2).

require 'tk'

TkButton.new do

text "EXIT"

command { exit }

pack('side'=>'left', 'padx'=>10, 'pady'=>10)

end

Tk.mainloop

感覺還挺好,不知道編寫複雜的怎麼樣?主要是沒有文件,比較麻煩。

3).

下面這段程式加入了事件處理:

require 'tk'

packing = { 'padx'=>5, 'pady'=>5, 'side' => 'left' }

checked = TkVariable.new

def checked.status

value == "1" ? "Yes" : "No"

end

status = TkLabel.new do

text checked.status

pack(packing)

end

TkCheckButton.new do

variable checked

pack(packing)

end

TkButton.new do

text "Show status"

command { status.text(checked.status) }

pack(packing)

end

Tk.mainloop

就以上這些了。。。。。。作為一個瞭解。讓更多的人知道Ruby應用的範圍。

想了解更多的Ruby TK用法參考<Programming Ruby 2ED>

©著作權歸作者所有:來自51CTO部落格作者blackanger的原創作品,如需轉載,請註明出處,否則將追究法律責任

RubyGUITK


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1868/viewspace-2820423/,如需轉載,請註明出處,否則將追究法律責任。

相關文章