捕捉 spinbox 中的变化 - rtcltk

发布于 2024-11-17 17:02:07 字数 363 浏览 2 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你的心境我的脸 2024-11-24 17:02:07

默认情况下,在这种情况下,如果您输入非法值(例如删除最后一位数字),或者如果更新很耗时,那么您不希望在输入 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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文