2011-06-28 52 views
2

我使用rtcltk與創建中的R紡紗器一:捕捉變化 - rtcltk

from <- tkwidget(leftFrame, type="spinbox", from=0, to=0.1, 
         inc=0.001, textvariable=freqFrom, 
         command = function(){updatePlot()}) 

這按預期工作(updatePlot叫法),當我用紡紗器的箭頭,但不工作如果我只是手動輸入一些東西。

如何捕捉「值已更改」事件?

回答

3

默認情況下,在這種情況下,如果您輸入非法值(如刪除最後一位數字),或者如果更新耗時,則不會希望它在輸入時在每次擊鍵之間更新一個3或4位數字。

您可以添加一個更新按鈕,而不是在點擊時調用updatePlot,以便用戶輸入數字,當他們知道完成時會點擊按鈕。

如果你真的想與每個按鍵要發生的更新,那麼你可以使用tkbind函數來調用updatePlot(類似tkbind(*spinbox*, "<Key>", updatePlot)其中紡紗器是可變指向紡紗器)。

+0

感謝Greg,並且說我想在用戶在更改該值後按ENTER鍵時執行此操作。那可能嗎? – nico

+2

@nico:嘗試''而不是''。 –