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