matlab guide对话框+滑动条+弹出式菜单+列表框的使用
文章目錄
- 前言
- matlab數(shù)據(jù)傳遞概觀
- 對(duì)話框創(chuàng)建
- 利用滑動(dòng)條實(shí)現(xiàn)顏色調(diào)控
- 利用彈出式菜單選擇并輸入文本框
- 利用列表框選擇并輸入文本框
前言
我覺得gui無(wú)非就是給程序加了件衣服,其實(shí)具體的程序我們都會(huì)寫,我們唯一不明白的是那幾個(gè)部分?jǐn)?shù)據(jù)之間的傳遞,以及怎么獲取數(shù)據(jù)處理數(shù)據(jù)。
matlab數(shù)據(jù)傳遞概觀
在GUI的各個(gè)控件之間進(jìn)行數(shù)據(jù)傳遞,可以采用以下兩種方法,利用結(jié)構(gòu)體handles和控件的UserData屬性。
結(jié)構(gòu)體handles保存了GUI的數(shù)據(jù)。當(dāng)在運(yùn)行GUI時(shí),M文件會(huì)自動(dòng)產(chǎn)生結(jié)構(gòu)體handles,其中保存了所有GUI對(duì)象的數(shù)據(jù),可以看作是一個(gè)數(shù)據(jù)的容器。用戶可在handles中找到所有控件的信息。handles在各各控件的callback之間傳來傳去。
通過在結(jié)構(gòu)體handles中新建字段并放置數(shù)據(jù),可以實(shí)現(xiàn)數(shù)據(jù)在各個(gè)控件之間共享
handles.a=a; guidata (hobject, handles); %更新在結(jié)構(gòu)體handles中新建字段a,并保存變量a的值然后利用函數(shù)guidata()更新handles中的數(shù)據(jù)。則在任何需要獲取該變量值的地方,可以使用如下語(yǔ)句:
a=handles.a;還可以采用控件的UserData屬性來保存數(shù)據(jù)。每個(gè)GUI對(duì)象都有UserData屬性,可以用來存儲(chǔ)任何類型的數(shù)據(jù)。用戶可以通過函數(shù)get()獲取數(shù)據(jù),通過函數(shù)set()設(shè)置數(shù)據(jù)。除此之外,還可以將變量用global設(shè)置為全局變量,從而實(shí)現(xiàn)數(shù)據(jù)的共享。
對(duì)話框創(chuàng)建
打開GUIDE,新建一個(gè)button,然后運(yùn)行找回調(diào)函數(shù),添加如下代碼
function pushbutton1_Callback(hObject, eventdata, handles) choice=questdlg('你要關(guān)閉嗎?','關(guān)閉對(duì)話框','Yes','No','No')%問題對(duì)話框,默認(rèn)為No switch choice,case 'Yes'delete(handles.figure1);%關(guān)閉窗口return;case 'No'return; end利用滑動(dòng)條實(shí)現(xiàn)顏色調(diào)控
SliderStep 為[0.01 0.1] :一個(gè)是小步長(zhǎng),是點(diǎn)擊slider兩端的箭頭移動(dòng)的步長(zhǎng);一個(gè)是大步長(zhǎng),是點(diǎn)擊slider時(shí)移動(dòng)的步長(zhǎng)
function slider1_Callback(hObject, eventdata, handles) val=get(hObject,'value');%通過get獲取滑動(dòng)條的當(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对话框+滑动条+弹出式菜单+列表框的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python函数之作用域
- 下一篇: 利用matlab绘制图形