2014-05-04 55 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

相關問題