2013-02-14 265 views
2

我认为它应该非常简单,我想要做的事情,基本上我有一个编辑框以百分比显示一个值,另一个我想要更新以显示原始值。我已经使用EDIT1(百分比)在下列代码回调尝试:动态更新Matlab GUI中的文本

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之外,只会更新第二个编辑框。任何人都知道我应该做什么?

谢谢!

回答

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. 将出现一个GUI。在GUI中显示的上部编辑框中输入文本。
  4. 观察下部编辑框中的文本是动态更新的还是实时更新,因为您在上部编辑框中输入测试。

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