在Matlab GUI中动态更新文本

时间:2013-02-14 21:42:03

标签: matlab

我认为我想要做的事情应该非常简单,基本上我有一个显示百分比值的编辑框和另一个我要更新以显示原始值的编辑框。我尝试在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

但是如果我第一次点击第一个编辑框,它只会更新第二个编辑框。任何人都知道我应该做什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为此链接可以帮助您:

How can I make the text that I enter into an edit text box update dynamically?

  

解决方案:

     

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

     

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

     

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

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

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