創作時間:2021-04-19
Readme:
續接前面兩篇文章,本文講述一種最常用的多app界面的資料傳遞方法,即就是: 借助公有函式進行引數傳遞.
本文目錄:
1.demo演示
2.如何實作?
2.1 功能模塊分解
2.2 詳細步驟
正文:
1.舉例說明
App 之間共享資料的方式取決于你的設計形式,
這里,我介紹一種最常見的設計形式,即就是: 包含兩個 App:一個主main App 和一個對話框dialog box,.
如下圖:

demo演示如下:.

該demo包括兩個界面,主界面和對話框界面,
主界面用于繪圖,對話框界面用于輸入引數,
1)主界面
a)檔案名:MainAppExample.mlapp
b) uifigure名:Dsiplay Plot
2)子界面的檔案名:
a)檔案名:DialogAppExample.mlapp
b) uifigure名:Options
demo功能說明:.
1.運行主界面;
2.點擊主界面的Button控制元件 (名為Options),彈出對話框界面,與此同時,關閉Button 控制元件的使能;
3.在子界面中editfield 控制元件(名為sample size 和color)中輸入引數sample size和color;
4.點擊子界面Button控制元件 (名為ok),引數傳遞到主界面,并進行主界面繪圖區的圖形更新,此時再次打開Button 控制元件的使能;
2.如何實作?
1.首先是在主界面中呼叫子界面
這里是重點,尤其是注釋的這幾句.
%主界面代碼區
% Button pushed function: OptionsButton回呼
function OptionsButtonPushed(app, event)
% 關閉OptionsButton控制元件的使能
app.OptionsButton.Enable = 'off';
%打開子界面并給引數賦值
app.DialogApp = DialogAppExample(app, app.CurrentSize, app.CurrentColormap);
%%這句代碼如果看不懂,請參考13,14課內容,
% 相當于呼叫了子界面的StartupFcn(app, mainapp, sz, c)
end
2.子界面中輸入引數
%子界面代碼區
% Button pushed function: OkButton
function ButtonPushed(app, event)
% 呼叫主界面的公有函式
updateplot(app.CallingApp, app.EditField.Value, app.DropDown.Value);
% 關閉子界面app
delete(app)
end
3.主界面的公有函式
%主界面代碼區
methods (Access = public)%公有函式
function updateplot(app, sz, c)
%將輸入保存到屬性中
app.CurrentSize = sz;
app.CurrentColormap = c;
% 更新繪圖
Z = peaks(sz);
surf(app.UIAxes,Z);
colormap(app.UIAxes,c);
% 重新恢復OptionsButton使能
app.OptionsButton.Enable = 'on';
end
end
4.主界面的屬性和startup
properties (Access = private)
DialogApp % Dialog box app
CurrentSize = 35; % Surface sample size%給定了初值
CurrentColormap = 'Parula'; % Colormap%給定了初值
end
function startupFcn(app)
% Call updateplot to display an initial plot
updateplot(app, app.CurrentSize, app.CurrentColormap)
end
5.子界面的屬性和startup
properties (Access = private)
CallingApp % Main app object
end
function StartupFcn(app, mainapp, sz, c)
%子界面初始化,賦值3個,CallingApp和兩個引數
app.CallingApp = mainapp;
% Update UI with input values
app.EditField.Value = sz;
app.DropDown.Value = c;
end
6.子界面的Close request function
Close request function: UIFigure
function DialogAppCloseRequest(app, event)
% Enable the Plot Opions button in main app
app.CallingApp.OptionsButton.Enable = 'on';
% Delete the dialog box
delete(app)
具體,可以觀看本節 視頻(正在錄制中,敬請期待~·).
THE END~
不積小流無以成江海,不積跬步無以至千里,

【MATLAB-app】系列教程(含視頻)00_csdn上第一套關于matlab appdesigner系列“視頻課”來啦~~
【影像演算法&MATLAB】一文講明白:影像的直方圖均衡化(附作者自編源代碼)
【探測器與相機標準】我對影像(影像傳感器/相機)“非均勻性”的理解與學習筆記
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/278554.html
標籤:其他
上一篇:C/C++的字符型別
下一篇:第3節 體驗自定義函式
