2012-02-22 125 views
2

我正在嘗試使用應用程序TabPanel Constructor v2.8。我遵循了它的指示。在我的gui的opensfcn中,我需要選擇其中一個選項卡。對於它,我應該使用與所述應用程序兼容的tabselectionfcn。該功能具有以下特徵:Matlab TabPanel使用方法

TABSELECTIONFCN(<hFig>,<TabTag>,<tabnumber>) 
%  <hFig>  the handle(!) of the Figure (which contains the tabpanel) 
%     and not the name of the figure file. 
%  <TabTag> the Tag name of the tabpanel 
%  <tabnumber> The number of the tabpanel or the tab string 

當我研究我的GUI的可變把手找到tabpanels的把手,我看不出來。如果我打開我的GUI的.fig文件,他們不會出現,所以我不知道該怎麼做才能解決這個問題。

P.D.我發了一封電子郵件給這個應用程序的作者,但我沒有得到答案。

回答

2

您不需要tabpanel手柄,而是圖形手柄。

GUIDE創建的圖形手柄默認爲隱藏。它的可見性由figure propertyHandleVisibility控制,其設置爲callback以保護GUI免受命令行用戶的影響。手柄是從回調函數內部可見,像

yourgui_OpeningFcn(hObject, eventdata, handles, varargin) 

其中hObject是你需要的手柄。您可以在與無花果文件關聯的m文件中找到所有回調函數。

您也可以從GUI打開圖文件

fh = openfig('yourgui.fig'); 

之外獲得句柄或者您可以使用FINDALL找到一個對象(包括隱藏)通過其屬性:

fh = findall(0,'type','figure'); %# all open figures including GUIs 
fh = findall(0,'name','yourgui'); %# find by name 

然後您可以使用TABSELECTIONFCN控制選項卡:

tabselectionfcn(fh,'myTab') %# get the tab status 
tabselectionfcn(fh,'myTab',2) %# activate the 2nd tab 
tabselectionfcn(fh,'myTab',1,'off') %# disable the 1nd tab (if not active) 

選項卡面板標籤名稱是在創建選項卡面板時用作佔位符的靜態文本對象的Tag屬性。如果您在GUIDE中打開GUI並使用Property Inspector檢查Tabpanel屬性,可以找到它。這看起來像TBP_myTab

順便說一句,如果你確實需要tabpanels處理你可以讓他們還的FindAll:

htab = findall(fh,'tag','TBP_myTab'); 
+0

非常感謝您的回答。我剛剛意識到我的錯誤是什麼。 – julian 2012-02-23 01:28:37

+0

嗨回來。我想我需要你的幫助與我的問題Matlab指南ResizeFcn回調。 – julian 2012-02-24 12:43:06