1. 程式人生 > 其它 >Matlab GUI設計(快速入門:程式設計工作流)

Matlab GUI設計(快速入門:程式設計工作流)

目錄

       1.窗體的建立

       2.控制元件的編寫

       3.回撥函式的編寫

       4.載入圖片和以圖片作為回撥函式

       5.後記


1.窗體的建立

source code:

function test1
close all  
global GUI

%%1.建立窗體
GUI.h = figure('units','pixels',...
    'position',[10 50 450 250],...  %%位置(從最下角計算)+大小(窗體長寬)
    'menubar','none',...            %%有無選單欄
    'name','HaoLotto',...           %%窗體的名稱
    'numbertitle','off',...         %%
    'resize','off');                %%窗體縮放

效果圖:

                                   


 2.控制元件的編寫

     控制元件型別有按鈕(pushbutton)、文字(text)、不可編寫文字(Edit)。

     通過改變引數中style 後面的內容產生不同型別的控制元件。至於前面的GUI.xxx只是GUI類下的內容而已。

     其中uicontrol是Matlab的一個函式,其中引數可以不定(如同C++一樣),

=======

relevant parameter:

=======

    'Patent',表示這個控制元件屬於哪個窗體。

  ‘style’,表示控制元件型別

   ‘

String’表示字元型別,後面編寫內容,用' '顯示

    ‘position’,表示位置和控制元件的大小

   ‘visible’,表示是否可見,可見後面寫‘on’,不可見,寫‘off’

    ‘callback’,回撥函式,後面寫回調函式名稱

GUI.button = uicontrol('Parent',GUI.h,'Style','pushbutton','String','Button',...      %%pushbutton代表按鈕
    'Position',[140 197 50 30],'visible','on',...
    'callback',@ChangeEditFcn);

%% Mode Select(模式選擇)
GUI.text0 = uicontrol('Parent',GUI.h,'Style','Text','String','Mode Select:',...       %%Text代表文字
    'Position',[10 200 125 22],'Fontsize',12,'FontWeight','bold',...
    'HorizontalAlignment','left');

GUI.edit = uicontrol('Parent',GUI.h,'Style','edit','String','10',...                  %%編輯文字
    'Position',[140 157 50 30],'Fontsize',12,'FontWeight','bold',...
    'visible','on');      %%編輯框中預設值是10

3.回撥函式編寫

       在上節程式GUI.button中寫明 回撥函式的名稱 ChangeEditFcn,前面指明是回撥函式'callback'。

       預先補充知識:

      (1)get():獲取相關控制元件的值

      (2)str2double():字元型轉浮點型

      (3)set(被設定物件,型別,值):修改控制元件的值

source code:

function ChangeEditFcn(~,~)            %%函式名稱,引數為空
global GUI              
EditValue = get(GUI.edit,'string');    %%獲取 控制元件 edit中的值
EditValue = str2double(EditValue)+1;   %%字元型轉雙精度型+1
set(GUI.edit,'string',EditValue)       %%將原先文字資料 賦值給 設定不可編輯文字
end

4.載入圖片和以圖片作為回撥函式

預備知識:

(1)imread()=image read:read and Display image

Matlab 幫助檔案解釋:

                     

(2)Imresize:修改圖片尺寸。

matlab 幫助檔案解釋:

                       

               

source code:

1.讀取圖片,顯示圖片

InterfacePic = imread('main1.PNG');
fac_pic = 3.1;
axes('Parent',GUI.h,'Position',[0.28,4.05,0.296*fac_pic,0.28*fac_pic])
imshow(InterfacePic)                       %%在畫布中顯示圖片

2.圖片作為控制元件並編寫回調函式

    2.1讀取圖片並賦值非GUI類下的GUI.Strt

StrtIcon = imread('up1.PNG');         %%讀取圖片尺寸
StrtIcon = imresize(StrtIcon,[140,38]);    %%修改圖片尺寸
GUI.Strt = uicontrol('Parent',GUI.h,'Style','pushbutton','String','',...
    'Position',[410 57 38 140],...
    'callback',@CountStart,...
   'CData',StrtIcon,'visible','on');

    2.2編寫回調函式

function CountStart(~,~)
global GUI
set(GUI.Strt,'visible','off');    %%獲取edit中的值
end

5.後記

     Matlab 提供三種構件APP的方式:

        1.App設計工具(APP Designer) R2016a 正式推出;

        2.GUIDE;

        3.程式設計工作流;

    本文描述的是程式設計工作流,能夠很好的認識到使用者是如何通過空間觸發回撥函式實現相應功能。

Date:20220529

           時間是證明一切的最好手段,知行合一方能走的遠。