捕捉 spinbox 中的变化 - rtcltk
我正在使用 rtcltk
在 R 中创建一个旋转框:
from <- tkwidget(leftFrame, type="spinbox", from=0, to=0.1,
inc=0.001, textvariable=freqFrom,
command = function(){updatePlot()})
当我使用旋转框的箭头时,这将按预期工作(调用 updatePlot
),但如果我使用旋转框,则不起作用只需手动输入一些内容即可。
如何捕获“值已更改”事件?
I'm creating a spinbox in R using rtcltk
with:
from <- tkwidget(leftFrame, type="spinbox", from=0, to=0.1,
inc=0.001, textvariable=freqFrom,
command = function(){updatePlot()})
This works as intended (updatePlot
is called) when I use the arrows of the spinbox, but does not work if I just type something in manually.
How do I catch the "value changed" event?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
默认情况下,在这种情况下,如果您输入非法值(例如删除最后一位数字),或者如果更新很耗时,那么您不希望在输入 3 或 4 时每次击键之间更新它,则它不会更改位数。
您可以添加一个更新按钮,然后在单击时调用 updatePlot,以便用户输入数字,并在知道完成后单击该按钮。
如果您确实希望每次击键时都进行更新,则可以使用 tkbind 函数调用 updatePlot (类似于 tkbind(*spinbox*, "", updatePlot),其中 spinbox是指向spinbox的变量)。
By default it does not change in this case in case you type in an illegle value (like deleting the last digit), or if the update is time consuming then you would not want it to update between every keystroke when typing in a 3 or 4 digit number.
You can add an update button than calls updatePlot when clicked so that the user would type in the number and when they know they are finished would click the button.
If you really want the update to occur with every keystroke then you can use the tkbind function to call updatePlot (something like
tkbind(*spinbox*, "<Key>", updatePlot)
where spinbox is the variable pointing to the spinbox).