14.MATLAB創(chuàng)建圖形用戶界面GUI

1 GUI對(duì)象層次結(jié)構(gòu)



2 GUI的基本知識(shí)

本小節(jié)主要介紹如何新建GUI,打開(kāi)GUI文件、Layout編輯器,GUIDE模版等GUI基礎(chǔ)知識(shí)


2.1 啟動(dòng)GUI

欲啟動(dòng)GUI操作,可以在命令窗口中輸入guide,將啟動(dòng)GUIDE?Quick Start對(duì)話框。

GUIDE Quick Start

利用GUIDE Quick Start對(duì)話框,用戶可以進(jìn)行如下操作:

* 利用GUIDE模版創(chuàng)建一個(gè)新的GUI,用戶可依照目的進(jìn)行改進(jìn)。

* 打開(kāi)已有的GUI。


2.2 布局(Layout)編輯器

當(dāng)用戶在GUIDE中打開(kāi)一個(gè)GUI時(shí),該GUI將顯示在Layout編輯器中

Layout編輯器是所有GUIDE工具的控制面版。

用戶可以使用鼠標(biāo)拖動(dòng)模版左邊的控件(按鈕、坐標(biāo)軸、單選按鈕等)到中間的布局區(qū)域。


2.3 GUIDE模版介紹

GUIDE Quick Start對(duì)話框提供了幾種常用的GUI模版。

使用GUI模版的好處是與使用空白GUI相比,用戶可以更方便地改變?cè)撃0娴牟季趾凸δ堋?/p>

一旦用戶選擇了其中的一種模版,在GUIDE?Quick Start對(duì)話框的右側(cè)就出現(xiàn)該模版的預(yù)覽。


2.4 運(yùn)行GUI

單擊工具欄最右邊的綠色按鈕,即運(yùn)行當(dāng)前的GUI窗口。

如果是第一次運(yùn)行,那么MATLAB將提示對(duì)該GUI窗口進(jìn)行保存,并在運(yùn)行的同時(shí),彈出M文件,給用戶進(jìn)行編輯操作。

任選一模板后,出現(xiàn)layout編輯器,注意保存時(shí)文件名應(yīng)為函數(shù)名,字母開(kāi)頭 %圖上是錯(cuò)誤的示范2333……

3?創(chuàng)建GUI對(duì)象

圖形用戶界面設(shè)計(jì)窗口


3.1GUI設(shè)計(jì)模板

在MATLAB主窗口中,選擇File菜單->New菜單項(xiàng)->GUI命令,就會(huì)顯示圖形用戶界面的設(shè)計(jì)模板。最新版的MATLAB R2016b 中,選擇新建->APP->GUIDE。

MATLAB為GUI設(shè)計(jì)一共準(zhǔn)備了4種模板,分別是:

Blank?GUI(默認(rèn))

GUI withUicontrols(帶控件對(duì)象的GUI模板)

GUI?with Axes and Menu(帶坐標(biāo)軸與菜單的GUI模板)

Modal?Question Dialog(帶模式問(wèn)話對(duì)話框的GUI模板)


3.2GUI設(shè)計(jì)窗口

選中一個(gè)模板確定后,就會(huì)顯示GUI設(shè)計(jì)窗口。選擇不同的GUI設(shè)計(jì)模式時(shí),在GUI設(shè)計(jì)窗口中顯示的結(jié)果不同。

GUI設(shè)計(jì)窗口由菜單欄、工具欄、控件工具欄以及圖形對(duì)象設(shè)計(jì)區(qū)等部分組成。

GUI設(shè)計(jì)窗口的菜單欄有File、Edit、View、Layout、Tools和Help?6個(gè)菜單項(xiàng),使用其中的命令可以完成圖形用戶界面的設(shè)計(jì)操作。


3.3GUI設(shè)計(jì)窗口的基本操作

屬性編輯器

在GUI設(shè)計(jì)窗口創(chuàng)建圖形對(duì)象后,通過(guò)雙擊該對(duì)象,就會(huì)顯示該對(duì)象的屬性編輯器。通過(guò)屬性編輯器改變屬性值。

對(duì)象屬性查看器

利用對(duì)象屬性查看器,查看、修改、設(shè)置對(duì)象的屬性值。從GUI設(shè)計(jì)窗口工具欄上選Property?Inspector命令按鈕,或者選擇View菜單下的Property Inspector子菜單,就可以打開(kāi)對(duì)象屬性查看器。

另外,在MATLAB命令窗口的命令行上輸入inspect,也可以看到對(duì)象屬性查看器。

菜單編輯器

利用菜單編輯器,可以創(chuàng)建、設(shè)置、修改下拉式菜單和快捷菜單。

從GUI設(shè)計(jì)窗口的工具欄上選擇Menu?Editor命令按鈕,或者選擇Tools菜單下的Menu Editor子菜單,就可以打開(kāi)菜單編輯器。

菜單編輯器左上角的第一個(gè)按鈕用于創(chuàng)建一級(jí)菜單項(xiàng)。第二個(gè)按鈕用于創(chuàng)建一級(jí)菜單的子菜單。

菜單編輯器的左下角兩個(gè)按鈕,選擇第一個(gè)按鈕,可以創(chuàng)建下拉式菜單。選擇第二個(gè)按鈕,可以創(chuàng)建Context Menu菜單。選擇它后,菜單編輯器左上角的第三個(gè)按鈕就會(huì)變成可用,單擊它就可以創(chuàng)建Context?Menu主菜單。在選中已經(jīng)創(chuàng)建的Context?Menu主菜單后,可以單擊第二個(gè)按鈕創(chuàng)建選中的Context?Menu主菜單的子菜單。與下拉式菜單一樣,選中創(chuàng)建的某個(gè)Context?Menu菜單,菜單編輯器的右邊就會(huì)顯示該菜單的有關(guān)屬性,可以在這里設(shè)置、修改菜單的屬性。

菜單編輯器左上角的第四個(gè)與第五個(gè)按鈕用于對(duì)選中的菜單進(jìn)行左移與右移,第六與第七個(gè)按鈕用于對(duì)選中的菜單進(jìn)行上移與下移,最右邊的按鈕用于刪除選中的菜單。

對(duì)象瀏覽器

利用對(duì)象瀏覽器,可以查看當(dāng)前設(shè)計(jì)階段的各個(gè)句柄圖形對(duì)象。

從GUI設(shè)計(jì)窗口的工具欄上選擇Object?Browser命令按鈕,或者選擇View菜單下的Object Browser子菜單,就可以打開(kāi)對(duì)象瀏覽器。例如,在對(duì)象設(shè)計(jì)區(qū)內(nèi)創(chuàng)建了3個(gè)對(duì)象,它們分別是Edit、Text、Push、Button、ListBox對(duì)象,此時(shí)單擊Object?Browser按鈕,可以看到對(duì)象瀏覽器。

在對(duì)象瀏覽器中,可以看到已經(jīng)創(chuàng)建的3個(gè)對(duì)象以及圖形窗口對(duì)象figure。用鼠標(biāo)雙擊圖中的任何一個(gè)對(duì)象,可以進(jìn)入對(duì)象的屬性查看器界面。

位置調(diào)整工具

利用位置調(diào)整工具,可以對(duì)GUI對(duì)象設(shè)計(jì)區(qū)內(nèi)的多個(gè)對(duì)象的位置進(jìn)行調(diào)整。

從GUI設(shè)計(jì)窗口的工具欄上選擇Align?Objects命令按鈕,或者選擇Tools菜單下的Align Objects菜單項(xiàng),就可以打開(kāi)對(duì)象位置調(diào)整器。

對(duì)象位置調(diào)整器中的第一欄是垂直方向的位置調(diào)整,第二欄是水平方向的位置調(diào)整。在選中多個(gè)對(duì)象后,可以方便的通過(guò)對(duì)象位置調(diào)整器調(diào)整對(duì)象間的對(duì)齊方式和距離。

Tab順序編輯器

利用Tab順序編輯器(Tab Order Editor),可以設(shè)置用戶按鍵盤上的Tab鍵時(shí),對(duì)象被選中的先后順序。

選擇Tools菜單下的Tab Order Editor菜單項(xiàng),就可以打開(kāi)Tab順序編輯器。例如,若在GUI設(shè)計(jì)窗口中創(chuàng)建了3個(gè)對(duì)象,與它們相對(duì)應(yīng)的Tab順序編輯器。

注:

MATLAB R2016b 中視圖菜單下,“屬性檢查器”對(duì)應(yīng)屬性編輯器和對(duì)象屬性檢查器,屬性檢查器可以對(duì)對(duì)象的屬性進(jìn)行修改和設(shè)置?!熬庉嬈鳌睂?duì)應(yīng)菜單編輯器。

不同版本,基本功能相似,叫法稍有不同,不必拘泥。


4 GUI編程

使用句柄結(jié)構(gòu)進(jìn)行GUI數(shù)據(jù)操作

GUIDE提供了一種機(jī)制來(lái)存儲(chǔ)和檢索共享的數(shù)據(jù),這些操作都通過(guò)包含有GUI控件句柄的相同結(jié)構(gòu)來(lái)實(shí)現(xiàn),這種機(jī)制就稱為句柄結(jié)構(gòu)。

句柄結(jié)構(gòu)包含有GUI的所有控件的句柄,它在M文件中被傳遞給每一個(gè)響應(yīng)。

因此,該響應(yīng)對(duì)保存任意共享數(shù)據(jù)十分有用。


4.1GUI的文件

1.句柄結(jié)構(gòu)共享數(shù)據(jù)

(1)在各響應(yīng)之間實(shí)現(xiàn)數(shù)據(jù)共享 ? ??

(2)訪問(wèn)GUI數(shù)據(jù)

2.M文件中的函數(shù)和響應(yīng)

用戶可以給GUI和M文件的如下部分增加程序代碼:

*打開(kāi)函數(shù)(Opening function),該函數(shù)在GUI可見(jiàn)之前實(shí)施操作。

*輸出函數(shù)(Output function),在必要的時(shí)候向命令行輸出數(shù)據(jù)。

*響應(yīng)(Callbacks),在用戶激活GUI中的相應(yīng)控件時(shí)實(shí)施操作。

M文件中的所有函數(shù)都有如下的輸入?yún)?shù)與句柄結(jié)構(gòu)相對(duì)應(yīng),M文件中的常用的輸入?yún)?shù)如下:

*hObject,圖形或是響應(yīng)對(duì)象的句柄。

*handles,具有句柄或是用戶數(shù)據(jù)的結(jié)構(gòu)。

句柄結(jié)構(gòu)往往在函數(shù)的最后階段進(jìn)行保存,使用如下命令:guidata(hObject,handles);

(1)打開(kāi)函數(shù)

(2)輸出函數(shù)

(3)響應(yīng)


4.2給GUI的控件響應(yīng)編制程序

1.“開(kāi)關(guān)”按鈕(Toggle Button)的響應(yīng)

2.按鈕(Radil Buttons)的響應(yīng)

3.“復(fù)選框”控件(Check?Boces)的響應(yīng)

4.“文本框”控件(Edit?Text)的響應(yīng)

5.“滾動(dòng)條”控件(Sliders)的響應(yīng)

6.“列表框”控件(List?Boxes)的響應(yīng)

7.“彈出菜單”控件(Pop-up?Menus)的響應(yīng)

8.控件板(Panels)的響應(yīng)


全文完,后續(xù)可能補(bǔ)充修正


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,021評(píng)論 25 709
  • 1、窗體 1、常用屬性 (1)Name屬性:用來(lái)獲取或設(shè)置窗體的名稱,在應(yīng)用程序中可通過(guò)Name屬性來(lái)引用窗體。 ...
    Moment__格調(diào)閱讀 4,780評(píng)論 0 11
  • 界面是軟件與用戶交互的最直接的層,界面的好壞決定用戶對(duì)軟件的第一印象。而且設(shè)計(jì)良好的界面能夠引導(dǎo)用戶自己完成...
    A夢(mèng)想才讓心跳存在閱讀 1,134評(píng)論 0 4
  • 相信很多人都和我一樣,每天做著同樣的工作,在學(xué)校:教室,食堂,寢室。出社會(huì):上班,下班,回家。每天過(guò)著粗燥的生...
    傻瓜1234閱讀 273評(píng)論 0 0

友情鏈接更多精彩內(nèi)容