matlab guide对话框+滑动条+弹出式菜单+列表框的使用
文章目錄
- 前言
- matlab數(shù)據(jù)傳遞概觀
- 對話框創(chuàng)建
- 利用滑動條實現(xiàn)顏色調(diào)控
- 利用彈出式菜單選擇并輸入文本框
- 利用列表框選擇并輸入文本框
前言
我覺得gui無非就是給程序加了件衣服,其實具體的程序我們都會寫,我們唯一不明白的是那幾個部分?jǐn)?shù)據(jù)之間的傳遞,以及怎么獲取數(shù)據(jù)處理數(shù)據(jù)。
matlab數(shù)據(jù)傳遞概觀
在GUI的各個控件之間進(jìn)行數(shù)據(jù)傳遞,可以采用以下兩種方法,利用結(jié)構(gòu)體handles和控件的UserData屬性。
結(jié)構(gòu)體handles保存了GUI的數(shù)據(jù)。當(dāng)在運行GUI時,M文件會自動產(chǎn)生結(jié)構(gòu)體handles,其中保存了所有GUI對象的數(shù)據(jù),可以看作是一個數(shù)據(jù)的容器。用戶可在handles中找到所有控件的信息。handles在各各控件的callback之間傳來傳去。
通過在結(jié)構(gòu)體handles中新建字段并放置數(shù)據(jù),可以實現(xiàn)數(shù)據(jù)在各個控件之間共享
handles.a=a; guidata (hobject, handles); %更新在結(jié)構(gòu)體handles中新建字段a,并保存變量a的值然后利用函數(shù)guidata()更新handles中的數(shù)據(jù)。則在任何需要獲取該變量值的地方,可以使用如下語句:
a=handles.a;還可以采用控件的UserData屬性來保存數(shù)據(jù)。每個GUI對象都有UserData屬性,可以用來存儲任何類型的數(shù)據(jù)。用戶可以通過函數(shù)get()獲取數(shù)據(jù),通過函數(shù)set()設(shè)置數(shù)據(jù)。除此之外,還可以將變量用global設(shè)置為全局變量,從而實現(xiàn)數(shù)據(jù)的共享。
對話框創(chuàng)建
打開GUIDE,新建一個button,然后運行找回調(diào)函數(shù),添加如下代碼
function pushbutton1_Callback(hObject, eventdata, handles) choice=questdlg('你要關(guān)閉嗎?','關(guān)閉對話框','Yes','No','No')%問題對話框,默認(rèn)為No switch choice,case 'Yes'delete(handles.figure1);%關(guān)閉窗口return;case 'No'return; end利用滑動條實現(xiàn)顏色調(diào)控
SliderStep 為[0.01 0.1] :一個是小步長,是點擊slider兩端的箭頭移動的步長;一個是大步長,是點擊slider時移動的步長
function slider1_Callback(hObject, eventdata, handles) val=get(hObject,'value');%通過get獲取滑動條的當(dāng)前值 set(handles.text1,'BackgroundColor',[val val val]);效果:
利用彈出式菜單選擇并輸入文本框
function popupmenu1_Callback(hObject, eventdata, handles) val=get(hObject,'value');%獲取數(shù)值,從上到下依次1到4 str=get(hObject,'String');%獲取字符串,這里是菜單所有的字符串,相當(dāng)于存到了字符串?dāng)?shù)組里 switch valcase 1set(handles.edit1,'String','');%輸入到可編輯文本里case 2set(handles.edit1,'String',str{2});case 3set(handles.edit1,'String',str{3});case 4set(handles.edit1,'String',str{4}); end效果:
利用列表框選擇并輸入文本框
function listbox1_Callback(hObject, eventdata, handles) sel=get(gcf,'selectiontype'); if strcmp(sel,'open')%如果雙擊鼠標(biāo)str=get(hObject,'String');%獲取字符串n=get(hObject,'value');%獲取數(shù)值set(handles.edit1,'string',str{n});%在靜態(tài)文本中顯示 end;效果:
總結(jié)
以上是生活随笔為你收集整理的matlab guide对话框+滑动条+弹出式菜单+列表框的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python函数之作用域
- 下一篇: (回文串全排列个数) xiaoxin j