2021-2-25 MATLAB App Designer—僅創(chuàng)建單例Figure窗口
1 背景
每次運行寫好的應(yīng)用程序時,它都會創(chuàng)建一個新的Figure實例,現(xiàn)在想僅創(chuàng)建單例Figure窗口
2 app?designer實現(xiàn)
對于app designer,存在一個功能‘single run instance’,也就是說同名的Figure不能共存,僅顯示最新的窗口(之前的窗口被刪除)

(1)這個是適用于*.mlapp的控制下
(2)目前沒找到通過Figure的屬性來控制單例生成
3 代碼控制
采用uifigure函數(shù)生成彈窗,由于沒法通過figure屬性來設(shè)置實現(xiàn)目的,故采用代碼控制
通過get函數(shù)獲取底層的句柄(GrootChildren)后,采用findobj對?GrootChildren 的?Children 查找指定屬性的 Figure后刪除,然后在運行uifigure生成新的窗口
?set(0,'ShowHiddenHandles','on'); % 設(shè)置可見 % 必要 % 若為false 則找不到窗口
?GrootChildren = get(0); %?獲取底層的句柄
delete(findobj(GrootChildren.Children,'Type','figure',?'Tag','app.Tools.ConfigureEigenvalueAnalysis.Figure'));? % 刪除窗口
set(0,'ShowHiddenHandles','off');?% 隱藏
4 代碼運行效果
查找當(dāng)前運行中的Figure窗口句柄

標(biāo)簽: