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