2014-05-04 14 views
0

目前我有一个GUI,其中一旦按下“提交”按钮,空白的下拉菜单将由其他三个值确定的计算值填充。在GUI中更新选定的保管箱项目

enter image description here

我已经成功地想出如何抓住所有使用这个逻辑值:

temp=get(handles.FSTOPpopmenu,{'String','Value'}); 
fstop=temp{1}{temp{2}}; 
if (strcmp(fstop,'Select')) 
    fstop = 0; 
else 
    fstop = str2num(fstop); 
end 

我只是有关于这一点,我似乎无法找到一个回答两个问题。

  1. 我怎么会去更新“空”下拉菜单来计算的变量(计算的变量将已经在预定列表中的可能值之一)?

  2. 我将如何去呈现一个错误,说如果我有一个if语句检查数组中的零的数量?弹出框会足够吗?

干杯。

回答

1

至于你的第一个问题matlab的set命令是你在找什么。该文档是here。你可能会需要:

MyValueIndex = find(DropDownValues==NewValue); 

switch handleToChange 

case handles.handle1 
    set(handles.handle1,'Value',MyValueIndex); 

case handles.handle2 
    set(handles.handle2,'Value',MyValueIndex); 

otherwise 
    error('Uh oh!'); 
end 

注意MyValueIndex是您要下拉框值的指数。在实际值上找到find命令。

问题二更多的是意见问题,但我认为一个描述问题的弹出框就足够了。也许加入一个系统哔声好措施!

参考:

http://www.mathworks.com/matlabcentral/answers/22734-resetting-a-pop-up-menu-in-a-gui

http://www.mathworks.com/help/matlab/ref/find.html

http://www.mathworks.com/help/matlab/ref/switch.html

0
  1. 对于弹出菜单uicontrol Value属性确定当前正在显示哪个String属性的元素。获取字符串;将其内容与计算出的变量进行比较以获得索引;然后将该索引设置为Value属性。如果计算的变量当前不在字符串中,则将其添加到字符串中,然后设置值。 (注意比较时需要将数字与数字或字符串与字符串进行比较,因此您可能需要先进行适当的数据类型转换)。使用errordlg

相关问题