ловить изменения в spinbox - rtcltk - PullRequest
2 голосов
/ 28 июня 2011

Я создаю spinbox в R, используя rtcltk с:

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

Это работает должным образом (вызывается updatePlot), когда я использую стрелки спинбокса, но не работает, если я просто что-то набираю вручную.

Как мне перехватить событие "значение изменено"?

1 Ответ

3 голосов
/ 28 июня 2011

По умолчанию оно не меняется в этом случае, если вы вводите значение illegle (например, удаление последней цифры), или если обновление занимает много времени, то вы не захотите, чтобы оно обновлялось между каждым нажатием клавиши при вводе 3 или 4-значное число.

Вы можете добавить кнопку обновления, чем вызывает updatePlot при нажатии, чтобы пользователь вводил номер, а когда он знал, что закончил, нажимал кнопку.

Если вы действительно хотите, чтобы обновление происходило при каждом нажатии клавиши, вы можете использовать функцию tkbind для вызова updatePlot (что-то вроде tkbind(*spinbox*, "<Key>", updatePlot), где spinbox - это переменная, указывающая на спинбокс).

...