2

我认为我想做的事情应该很简单,基本上我有一个以百分比显示值的编辑框和另一个我想更新以显示原始值的编辑框。我尝试在 edit1(百分比)回调下使用以下代码:

currentKey = str2num(get(gcf,'CurrentKey'));
percent = str2num(get(handles.edit1,'String'));
if ~isnan(currentKey) && ~isnan(percent) && 0<=percent && percent<=100
    set(handles.edit2,'String',num2str(2*percent))
end

但是,如果我第一次单击第一个之外,它只会更新第二个编辑框。有人知道我应该做什么吗?

谢谢!

4

1 回答 1

1

我认为这个链接应该可以帮助你:

如何使我输入到编辑文本框中的文本动态更新?

解决方案:

此增强功能已包含在版本 2011a (R2011a) 中。对于以前的产品版本,请阅读以下任何可能的解决方法:

这是 MATLAB 中编辑框 UICONTROL 的预期行为。

您可以尝试使用“keypressfcn”来获取键盘输入。随附的两个文件演示了实时文本更新的能力。当您在上方的编辑框中输入文本时,文本将在您输入时复制到其下方的编辑框中。

  1. 请下载以下两个文件:test_keypressfcn.m test_keypressfcn.fig
  2. 执行程序。
  3. 将出现一个 GUI。在 GUI 中显示的上部编辑框中输入文本。
  4. 当您在上部编辑框中输入 test 时,观察下部编辑框中的文本会动态或实时更新。

请注意,这仅适用于在编辑框中连续输入的文本。如果您在已在编辑框中输入的单词之间键入,则 gui 将无法按预期执行。您将需要实现类似于本示例中的逻辑以获得所需的行为。

于 2013-02-14T21:49:15.373 回答