使用MATLAB 2019 App Design 工具設計一個 電子日記App


使用MATLAB 2019 App Design 工具設計一個 電子日記App
1.1 前言:由於信號與系統課程需要,因此下載了MATLAB軟件,加之對新款的執着追求,通過一些渠道,下載了MATLAB 2019專業版。在使用過程中我發現該軟件居然內含一款app設計工具,回想起之前使用Java swing編寫用戶交互時按照坐標確定模塊位置時的苦澀,該工具的拖拉式布局極大的吸引了我,而且添加了回調函數功能,這一低門檻讓許多不懂得編程的同學也有了編寫個性化程序的可能,於是本着“君子動手不動口的原則”,在一個閑暇時間萌生了設計一款個性化APP的想法。
1.2 app設計:作為一名大三考研黨,每天的工作學習繁瑣的雜事數不勝數,加之小時候又沒有培養寫日記的習慣,經過我的”深思熟慮“,決定做一款可以記錄每天生活狀態,學習情況以及備忘功能的App,該App主要包含以下功能,(1)可以記錄每天學習情況,重要事件,並按當天日期作為文件名的文本保存在App目錄下。(2) 可以根據需要顯示想要查詢日期的學習情況與重要事件。(3)可以便捷打開一下特定的網頁比如百度,博客等。
1.3 軟件准備工作:
MATLAB 2019 資源
提取碼:9bh8
2.1 App界面設計:由於App design采用了非常人性化的拖拽界面,故實現起來很容易,就像畫圖一樣,拖拽模塊到畫布上即可,下面展示一下我設計的界面:
在這里插入圖片描述
2.2 后端代碼邏輯設計:相比於前面的畫圖,這一部分就顯得有點復雜,由於我的版本是2019版,與網上大多數的版本不一致,而語法也有較大的區別。
(1)首先應該添加回調函數,具體操作方法為,右鍵想要設計的模塊,選擇回調,轉至***回調,這樣就會自動在代碼視圖里面生成一個回調函數,並且設置一個變量作為初值。如圖:
在這里插入圖片描述
在這里插入圖片描述
由於我之前設計好了后端代碼,所以可能你創建之后函數的空的,只有一條賦值語句,類似這樣:

 function TextArea_2ValueChanged(app, event) app.vvl=app.TextArea_2.Value; end

如果按照我設計的App,則需要以下幾個模塊回調,首先是兩個文本區,一個作為每日情況的記錄,另一個作為每日情況的查詢與顯示,還需要一個日期顯示器,兩個按鈕作為跳轉,四個按鈕分別超鏈接四個常用網站,以及三個文本選擇框,下面我來一一講解這些模塊的參數值傳遞。
(1)文本區模塊:函數傳參為app,event。具體使用方法為,若想要獲取文本區內的值,則在函數內輸入

value=event.value;

這里要主要value只能在函數內調用,如想要傳參給別的函數,如想要多個文本區顯示文字時,則需要為value添加私有變量。
選擇value,按左上角添加變量,在跳出的函數中添加value即可,這時可將回調函數改為

app.value=event.value;

app.value即為用戶在文本區輸入的值,該值以cell形式存儲。
(2)文本選擇模塊

% Selection changed function: ButtonGroup function ButtonGroupSelectionChanged(app, event) app.selectedButton1=app.ButtonGroup.SelectedObject.Text; end

函數參數為app,event,若想要獲取選擇框選擇的值,則

app.selectedButton1=app.ButtonGroup.SelectedObject.Text; 

 

app.selectButton1 為字符串類型
(3)日期選擇器

 % Value changed function: DatePicker function DatePickerValueChanged(app, event) app.d = app.DatePicker.Value; app.DateString = datestr(app.d); end 

 

app.DatePicker.Value值為cell數組類型,如果想要在文本區顯示則需要強制轉換為字符串類型

app.DateString = datestr(app.d); 

 

(4)超鏈接跳轉

 % Button pushed function: Button_12 function Button_12Pushed(app, event) url = 'https://www.baidu.com'; web(url,'-browser') end 

 

可將網址改成自己想要的訪問的網站
(5)兩個跳轉按鈕:查詢與提交
當按下提交按鈕時,需要將文本區的文字,以及選擇框中選擇的文本共同寫入到以日期選擇框選擇時間命名的txt文本文件中,如果沒有則創建一個,該文件位置在App的目錄下。例如:時間選擇器時間為2020年9月28號,則按下提交按鈕時,會將文本區的文字以及選擇的內容共同寫入28-Sep-2020.txt文件中,並存儲。
在這里插入圖片描述
在這里插入圖片描述
代碼實現:

  % Button pushed function: Button_11 function Button_11Pushed(app, event) abc='.txt'; stre=strcat(app.DateString,abc); lla=char(app.vvl{1}); fid=fopen(stre,'a+'); fprintf(fid,'%s',lla); fprintf(fid,'\n%s',"是否開心: "); fprintf(fid,'%s\n',app.selectedButton1); fprintf(fid,'%s',"是否焦慮: "); fprintf(fid,'%s\n',app.selectedButton2); fprintf(fid,'%s',"學習情況: "); fprintf(fid,'%s\n',app.selectedButton3); msgbox('提交成功','提示','help'); end 

當按下查詢按鈕時,App會自動在目錄內尋找以當前時間選擇器中時間為名字命名的txt文件,並顯示在文本區中
在這里插入圖片描述
而且不會覆蓋之前的結果。
代碼實現:

% Button pushed function: Button_2 function Button_2Pushed(app, event) abc1='.txt'; stre=strcat(app.DateString,abc1); filename = stre; A = importdata(filename); app.TextArea.Value=A; end 

 

其余的模塊純屬擺設,無任何實際作用!
3.1 程序打包成exe文件
程序寫好了,追求完美的我肯定不會輕易放過全平台普及的機會,正好App design也提供了這樣的功能,點擊左上角設計器-》共享-》獨立桌面App
在這里插入圖片描述
在里面填入一些必須的信息,另外上傳一張好看的圖片,點擊Package即可,稍等片刻你的文件就成功變成exe了。
值得注意的是,想要運行該exe程序必須要求系統內按照MATLAB運行環境,如果沒有安裝則不能運行
3.2 總結:至此一個小小想法就全部完成了,雖然簡單,但還是一套具備一定功能的程序,最重要的是,它將我帶進了MATLAB的巨坑里,掙扎着又享受着……
完~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM