在創(chuàng)建GUI時常常會用到樹形的結(jié)構(gòu),用來展示一些內(nèi)容的樹狀組織方式。在MATLAB Appdesigner中,常常會使用到uitree,uitreenode,uicontextmenu這三種類來創(chuàng)建一個樹結(jié)構(gòu)。本文介紹了如何借助這些UI組件來創(chuàng)建文件樹的功能。
創(chuàng)建一個APP designer的框架
最簡單的樹創(chuàng)建方法如下所示。需要指定一個樹所依附的uifigure,然后在樹下添加子節(jié)點,同時子節(jié)點也可以為自己添加子節(jié)點。
我們這里借助圖形化開發(fā)界面,快速拖拽一個樹組件,并如下所示。下面這個APP的功能是,分析目標文件夾下的文件,以樹結(jié)構(gòu)展示出來,并可以通過節(jié)點的上下文菜單進行一定的操作。
為分析按鈕添加回調(diào)
回調(diào)的功能就是分析目標路徑下的文件,并體現(xiàn)到樹結(jié)構(gòu)中去??梢钥吹?,對于一個uitreenode對象來說,需要指定它所依賴的父節(jié)點(根節(jié)點或者樹節(jié)點),指定它的顯示文字,可以選擇指定節(jié)點所攜帶的數(shù)據(jù)(用來協(xié)同外部數(shù)據(jù)進行相關(guān)操作),可以指定節(jié)點的右鍵上下文菜單。
為上下文菜單添加回調(diào)
通過uicontextmenu來創(chuàng)建上下文菜單對象,添加菜單項,并為菜單添加回調(diào)函數(shù)。如果希望回調(diào)函數(shù)能夠訪問外部數(shù)據(jù),那么就不能單獨傳遞一個回調(diào)函數(shù)的句柄,而是要用cell數(shù)組打包,cell數(shù)組的第一個元素是回調(diào)句柄,后面的參數(shù)依次是要傳遞的外部參數(shù)。
注意這里回調(diào)函數(shù)的寫法,有兩個默認的占位參數(shù),用來傳遞回調(diào)過程中的狀態(tài)和事件,因此額外的參數(shù)要從第三個參數(shù)開始傳入。
這里寫了兩個簡單的回調(diào)功能,一個是打印節(jié)點數(shù)據(jù)。另一個是打開節(jié)點數(shù)據(jù)。
效果展示
點擊Analyze按鈕,分析目標路徑下的文件,并以樹結(jié)構(gòu)展示在APP窗口。
右鍵樹節(jié)點,可以看到彈出的上下文菜單。
點擊Display按鈕,在命令行窗口打印節(jié)點名稱。
點擊Open按鈕,打開節(jié)點文件。
-
MATLAB仿真
+關(guān)注
關(guān)注
4文章
175瀏覽量
19847 -
GUI
+關(guān)注
關(guān)注
3文章
631瀏覽量
39322 -
回調(diào)函數(shù)
+關(guān)注
關(guān)注
0文章
87瀏覽量
11508
發(fā)布評論請先 登錄
相關(guān)推薦
評論