2013-08-05 39 views
2

Ruby的鞋子GUI工具包看起來像是一種非常好的和簡單的方法,可以將GUI添加到我的各種腳本中,但是在將我的頭撞向它之後,我似乎無法制作段落不斷用循環更新。Ruby Shoes GUI:不斷更新段落

這裏是我的最少的代碼,以顯示我想要做的事:

Shoes.app do 
    stack do 
     @exit = button "Exit" 
     @log = stack { para "Logging goes here..." } 
     @exit.click { exit } 

    end 

    loop do 
     sleep 1 
     contents = `ls` 
     @log.append { para contents } 
    end 

end 

但是,這只是塊永遠和我的GUI一直沒有出現,直到我殺了紅寶石的過程,此時出現在我的所有信息。

我試着把「內容」檢查循環並追加到一個單獨的類中,在它自己的「堆棧」或「流」循環中,嘗試按照「塊重定向」將@log傳遞給單獨的類方法, 「鞋子規則」(http://shoesrb.com/manual/Rules.html)中的標題,在嘗試我能想到的所有事情之後仍然沒有快樂。任何想法,我如何才能得到這個工作?我想我對鞋子如何設置GUI並沒有完全的把握。

回答

2

如果你正在尋找列出目錄中的所有文件,並刷新列表每一秒,那麼我認爲這是你要找的東西:

Shoes.app do 

    stack do 
    @btn_exit = button("Exit") {exit} 
    @log = para "Logging goes here..." 
    end 

    every 1 do 
    @log.text = Dir.entries('C:/Test').select{|file| file != "."*file.length}.join("\n") 
    end 

end 
+0

是的!非常感謝你! – ChunkyBaconPlz

+0

由於OP正在編寫鞋子應用程序,因此使用「動畫」方法而不是「每個」方法 – Gregory

2

好像你需要every方法(搜索它here)。每種方法都會每秒調用一次您的代碼(或者您傳入的秒數)。

應該像這樣:

every do 
    # your appending code 
end 

(可能需要1作爲參數,而不是100%肯定ATM)

+0

感謝您的輸入! – ChunkyBaconPlz