一種較方便的MATLAB GUI中popupmenu中選取值得獲得方法


matlab的GUI編程中Popupmenu是比較常用的一種控件,如何將popupmenu的選取值讀取出來?其中有點陷阱需要注意。正確的方法應該如下:
list=get(handles.popupmenu1,'String');
val1=get(handles.popupmenu1,'Value');
selectedval=str2num(list{val1});
其中的popupmenu1是一個下拉選擇框控件。list獲取該選擇框的全部內容值,是一個列表,例如可能是如下形式的一個列表。
0.01
0.001
0.00001
0.000001
val1得到的是該選擇框的選取值的索引,也就是被選取值的位置。假如val1=1,也就是說選擇的是列表中第一個值。
list{val1}就獲取了上面列表中第一個元素的值,注意這個值表現為一個字符串,也就是'0.01'。
再用str2num()函數將它轉換為double值。就得到了數值0.01。
這樣可以獲得popupmenu1中被選取的值。
注意,上面使用的是list{val1}來獲取字符串,而使用list(val1)來取值的時候,可以取得值'0.01',但是使用str2num()函數的時候出錯。不知道問題是什么,可能list本身是cell類型,從而導致這個結果,這一點需要調查。

 

轉自:http://blog.sina.com.cn/s/blog_6f81de820100x01n.html  轉自:http://hi.baidu.com/zhangrobin/blog/item/d85dd3213756cb7a35a80f4d.html

還有一種選取方法,私以為較復雜,此處附上供參考

首先在popupmenu的string中比分3行寫上a,b,c;保存
  在popupmenu的回調函數中寫上如下代碼:
  val=get(handles.popupmenu,'Value');
  switch val
  case 1
  x=1
  set(handles.popupmenu,'String','a');
  case 2
  x=2
  set(handles.popupmenu,'String',b');
  case 3
  x=3
  set(handles.popupmenu,'String','c');
  default
  msgbox('出錯','warn');
  end

轉自:http://zhidao.baidu.com/link?url=0c4HEs1J4f_d9q6sRkaxsKCg25fpmn_7ylHpBHRYTvurAy8wZepYQI-poeKxFeHaosLt819gdS_j8uFccbd8ta


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM