Matlab GUI编程技巧(十):ui figure函数创建可视化图窗
- 🔗?運行環境:Matlab
- 🚩?撰寫作者:左手の明天
- 🥇?精選專欄:《python》
- 🔥??推薦專欄:《算法研究》
💗 大家好🤗🤗🤗,我是左手の明天!💗
📆? 最近更新:2022 年 5 月 26 日,左手の明天的第?247?篇原創博客
📚?更新于專欄:Matlab GUI編程技巧
目錄
🚩UI Figure 屬性?
??窗口外觀
💗Color?-?背景色
💗WindowStyle?-?窗口樣式
💗WindowState?-?窗口狀態
??位置和大小
💗Units?-?測量單位
💗Resize?-?可調整大小
??繪圖
💗Colormap?-?UIAxes?內容的顏色圖
💗Alphamap?-?坐標區內容的透明度映射
??鼠標指針
💗Pointer?-?指針符號
??標識符
💗Icon?-?圖標源或文件
💗NumberTitle?-?使用帶編號的標題
🚩創建可視化圖窗
??語法
??示例
💗創建默認的 UI 圖窗
💗設置和訪問屬性
💗更改圖窗大小
💗創建模態 UI 圖窗
💗編寫 CloseRequestFcn 以確認關閉 UI 圖窗
UI 圖窗是在 App 設計工具中或通過?uifigure?函數以編程方式創建 App 的容器??梢酝ㄟ^屬性控制 UI 圖窗的外觀和行為。使用圓點表示法引用特定的對象和屬性:
fig = uifigure; fig.Name = 'My App';🚩UI Figure 屬性?
??窗口外觀
💗Color?-?背景色
背景顏色,指定為 RGB 三元組、十六進制顏色代碼。
對于自定義顏色,請指定 RGB 三元組或十六進制顏色代碼。
-
RGB 三元組是包含三個元素的行向量,其元素分別指定顏色中紅、綠、藍分量的強度。強度值必須位于?[0,1]?范圍內,例如?[0.4 0.6 0.7]。
-
十六進制顏色代碼是字符向量或字符串標量,以井號 (#) 開頭,后跟三個或六個十六進制數字,范圍可以是?0?到?F。這些值不區分大小寫。因此,顏色代碼?'#FF8800'?與?'#ff8800'、'#F80'?與?'#f80'?是等效的。
此外,還可以按名稱指定一些常見的顏色。下表列出了命名顏色選項、等效 RGB 三元組和十六進制顏色代碼。
| 'red' | 'r' | [1 0 0] | '#FF0000' |
| 'green' | 'g' | [0 1 0] | '#00FF00' |
| 'blue' | 'b' | [0 0 1] | '#0000FF' |
| 'cyan' | 'c' | [0 1 1] | '#00FFFF' |
| 'magenta' | 'm' | [1 0 1] | '#FF00FF' |
| 'yellow' | 'y' | [1 1 0] | '#FFFF00' |
| 'black' | 'k' | [0 0 0] | '#000000' |
| 'white' | 'w' | [1 1 1] | '#FFFFFF' |
💗WindowStyle?-?窗口樣式
窗口樣式,指定為下列值之一:
-
'normal'?- 此圖窗窗口獨立于其他窗口,并且在顯示圖窗時可以訪問其他窗口。
-
'modal'?- 該圖窗以正常窗口樣式顯示在所有現有圖窗窗口的上方,并使這些窗口變得無法訪問(只要頂層圖窗存在并保持模態)。但是,任何在模態圖窗之后創建的新圖窗都會顯示出來。
-
'alwaysontop'?- 圖窗顯示在所有其他窗口的頂部,包括模態圖窗窗口和來自非 MATLAB 應用程序的窗口。其他窗口仍可訪問。
UI 圖窗模態窗口樣式行為
當?WindowStyle?設置為?'modal'?時,UI 圖窗窗口會阻止在它之前創建的 UI 圖窗窗口中的鍵盤和鼠標交互,并將其?Visible?屬性設置為?'on'。例如,在下面的代碼中,圖窗 3 相對于圖窗 2 為模態圖窗,圖窗 2 相對于圖窗 1 為模態圖窗。
fig1 = uifigure('Name','Figure 1'); fig1.WindowStyle = 'modal';fig2 = uifigure('Name','Figure 2'); fig2.WindowStyle = 'modal';fig3 = uifigure('Name','Figure 3'); fig3.WindowStyle = 'modal';💗WindowState?-?窗口狀態
窗口狀態,指定為下列值之一:
-
'normal'?- 窗口顯示為正常狀態。
-
'minimized'?- 窗口被折疊,但您仍可以執行命令來獲取或設置其屬性、添加子級或在窗口中創建繪圖。
-
'maximized'?- 窗口填滿屏幕。操作系統提供的最小化、還原和關閉按鈕出現在窗口的角落。如果正常狀態下的窗口包含菜單,則它們在此狀態下也會顯示。
-
'fullscreen'?- 窗口填滿屏幕。但是,操作系統提供的最小化、還原和關閉按鈕將被隱藏。如果正常狀態下的窗口包含菜單,則它們在此狀態下也會顯示。
??位置和大小
💗Position?-?UI 圖窗的位置和大小,不包括邊框和標題欄
UI 圖窗的位置和大小,不包括邊框和標題欄,指定為?[left bottom width height]?形式的四元素向量。
| left | 從主畫面左邊緣到 UI 圖窗窗口的內部左邊緣的距離。在具有多個監視器的系統上,該值可能為負數。 |
| bottom | 從主畫面下邊緣到 UI 圖窗窗口的內部下邊緣的距離。在具有多個監視器的系統上,該值可能為負數。 |
| width | UI 圖窗的左右內部邊緣之間的距離。 |
| height | UI 圖窗的上下內部邊緣之間的距離。 |
💗Units?-?測量單位
測量單位,指定為下表中的值之一。
| 'pixels'(默認值) | 像素。 以像素為單位的距離不依賴 Windows 和?Macintosh?系統上的系統分辨率:
在 Linux 系統上,一個像素的大小由系統分辨率確定。 |
| 'normalized' | 這些單位依據父容器進行歸一化。容器的左下角映射到?(0,0),右上角映射到?(1,1)。 |
| 'inches' | 英寸。 |
| 'centimeters' | 厘米。 |
| 'points' | 磅。1 磅等于 1/72 英寸。 |
💗Resize?-?可調整大小
可調整大小的 UI 圖窗,指定為?'on'?或?'off',或者指定為數值或邏輯值?1?(true) 或?0?(false)。值?'on'?等效于?true,'off'?等效于?false。
當此屬性設置為?'on'?時,UI 圖窗可調整大小。否則將無法調整其大小。
??繪圖
💗Colormap?-?UIAxes?內容的顏色圖
UIAxes?內容的顏色圖,指定為由 RGB(紅色、綠色、藍色)三元組組成的?m×3?數組,這些三元組定義?m?種單獨的顏色。
示例:?uifigure('Colormap',[1 0 1; 0 0 1; 1 1 0])?將顏色圖設置為三種顏色:品紅色、藍色和黃色。
MATLAB 按行號訪問這些顏色。
💗Alphamap?-?坐標區內容的透明度映射
坐標區內容的透明度映射,指定為由介于?0?和?1(包含這兩個邊界值)之間的值組成的向量。該向量的大小可以是 m×1 或 1×m。MATLAB 通過 alpha 值在向量中的索引訪問 alpha 值。Alphamap 可以為任意長度。
??鼠標指針
💗Pointer?-?指針符號
指針符號,指定為下表中的值之一,或指定為?'custom'。符號的外觀與操作系統相關。
| 'arrow' | |
| 'ibeam' | |
| 'crosshair' | |
| 'watch'(系統忙) | |
| 'topl'?或?'botr' | |
| 'topr'?或?'botl' | |
| 'circle' | |
| 'cross' | |
| 'fleur' | |
| 'left'?或?'right' | |
| 'top'?或?'bottom' | |
| 'hand' |
??標識符
💗Name?-?名稱
圖窗的名稱,指定為字符向量或字符串標量。
示例:?uifigure('Name','Results')?將圖窗的名稱設置為?'Results'。
💗Icon?-?圖標源或文件
圖標源或文件,指定為字符向量、字符串標量或?m×n×3 真彩色圖像數組。如果指定文件名,它可以是 MATLAB 路徑中的圖像文件名或圖像文件的完整路徑。
支持的圖像格式包括 JPEG、PNG、GIF 和?m×n×3 真彩色圖像數組。
如果沒有足夠的空間顯示完整大小的圖標,MATLAB 會縮小圖像以適應空間。
示例:?'icon.png'?指定 MATLAB 路徑中的圖標文件。
示例:?'C:\Documents\icon.png'?指定圖像文件的完整路徑。
示例:?fig = uifigure('Icon','peppers.png')?使用指定的圖標圖像文件創建一個 UI 圖窗。
💗NumberTitle?-?使用帶編號的標題
指定為?'off'?或?'on',或者指定為數值或邏輯值?1?(true) 或?0?(false)。值?'on'?等效于?true,'off'?等效于?false。
將此屬性設置為?'on'?時,UI 圖窗的標題包含短語?'Figure n',其中?n?是數字。
NumberTitle?和?IntegerHandle?屬性都必須設置為?'on'?才能顯示標題中的數字。
🚩創建可視化圖窗
??語法
- fig?= uifigure?創建一個用于構建用戶界面的圖窗并返回?Figure?對象。這是 App 設計工具使用的圖窗類型。
- fig?= uifigure(Name,Value)?使用一個或多個?Name,Value?對組參數指定圖窗屬性。
??示例
💗創建默認的 UI 圖窗
fig = uifigure;💗設置和訪問屬性
- 創建具有特定標題的 UI 圖窗
- ?獲取該圖窗的位置、寬度和高度
💗更改圖窗大小
創建默認 UI 圖窗。
fig = uifigure;獲取該圖窗的位置、寬度和高度。
fig.Positionans =681 559 560 420這意味著圖窗窗口位于主顯示畫面左下角的右側 681 像素和上方 559 像素處,寬 560 像素,高 420 像素。
通過調整位置向量的第三個和第四個元素,將圖窗寬度和高度減半。
fig.Position(3:4) = [280 210];💗創建模態 UI 圖窗
創建兩個 UI 圖窗窗口。通過將圖窗 2 的?WindowStyle?屬性值指定為?'modal'?來阻止圖窗 1 中的交互。請注意,在圖窗 2 關閉之前,您無法與圖窗 1 交互。
fig1 = uifigure('Name','Figure 1'); fig1.Position = [500 500 370 270];fig2 = uifigure('Name','Figure 2'); fig2.Position = [540 450 370 270]; fig2.WindowStyle = 'modal';💗編寫 CloseRequestFcn 以確認關閉 UI 圖窗
編寫?CloseRequestFcn?回調,以便在用戶試圖關閉窗口時打開模態“確認”對話框。
function closeFig fig = uifigure('Position',[100 100 425 275]); fig.CloseRequestFcn = @(src,event)my_closereq(src);function my_closereq(fig)selection = uiconfirm(fig,'Close the figure window?',...'Confirmation');switch selectioncase 'OK'delete(fig)case 'Cancel'returnendendend點擊圖窗中的關閉按鈕。“確認”對話框隨即打開。
💗更改鼠標指針符號
更改將鼠標懸停在普通按鈕上時顯示的鼠標指針符號。
此程序文件名為?setMousePointer.m,該文件可以做如下說明:
-
創建一個 UI 圖窗,該圖窗在鼠標移至按鈕上時執行自定義代碼。為此,使用?@?運算符將?mouseMoved?函數句柄賦給該圖窗的?WindowButtonMotionFcn?屬性。
-
創建一個普通按鈕,并指定其坐標和標簽。
-
創建一個名為?mouseMoved?的回調函數,其中包含當鼠標移到該按鈕上時要執行的自定義代碼。在函數中,查詢?CurrentPoint?屬性以確定鼠標指針坐標。如果指針坐標在普通按鈕坐標內,則將?Pointer?屬性設置為?'hand'。
運行?setMousePointer。然后將鼠標移到該普通按鈕上,以查看鼠標指針符號從箭頭變為手形。
function setMousePointer fig = uifigure('Position',[500 500 375 275]); fig.WindowButtonMotionFcn = @mouseMoved;btn = uibutton(fig); btnX = 50; btnY = 50; btnWidth = 100; btnHeight = 22; btn.Position = [btnX btnY btnWidth btnHeight]; btn.Text = 'Submit Changes';function mouseMoved(src,event)mousePos = fig.CurrentPoint;if (mousePos(1) >= btnX) && (mousePos(1) <= btnX + btnWidth) ...&& (mousePos(2) >= btnY) && (mousePos(2) <= btnY + btnHeight)fig.Pointer = 'hand';elsefig.Pointer = 'arrow';endend end?創建用于設計 App 的圖窗 - MATLAB uifigure- MathWorks 中國
🌟全文共5112個字,碼字總結不易,老鐵們來個三連:點贊、關注、評論🌟
🌟作者:左手の明天🌟
🌟原創不易,轉載請聯系作者并注明出處🌟
總結
以上是生活随笔為你收集整理的Matlab GUI编程技巧(十):ui figure函数创建可视化图窗的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ESP32-S3 LVGL http下载
- 下一篇: 手柄xinput模式_玩家新宠,谷粒金刚