目前我有一个GUI,其中一旦按下“提交”按钮,则留下空白的下拉菜单将由其他三个值确定的计算值填充。
我已成功找出如何使用此逻辑获取所有值:
temp=get(handles.FSTOPpopmenu,{'String','Value'});
fstop=temp{1}{temp{2}};
if (strcmp(fstop,'Select'))
fstop = 0;
else
fstop = str2num(fstop);
end
我只有两个问题,我似乎无法找到答案。
如何将'空'下拉菜单更新为计算变量(计算变量已经是预定列表中可能的值之一)?
我如何提出错误,如果我有if语句检查数组中的零数量?弹出框是否足够?
干杯。
答案 0 :(得分: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
答案 1 :(得分:0)
对于弹出菜单uicontrol,Value属性确定当前正在显示String属性的哪个元素。获取字符串;将其内容与计算变量进行比较以获得索引;然后将该索引设置为Value属性。如果计算的变量当前不在String中,则将其添加到String中,然后设置Value。 (注意比较时需要将数字与数字或字符串与字符串进行比较,因此您可能需要先进行适当的数据类型转换。)
使用errordlg。