2012-02-22 4 views
2

Я пытаюсь использовать приложение TabPanel Constructor v2.8. Я следовал инструкциям, данным им. В открытии моего gui мне нужно выбрать одну из вкладок. Для этого я должен использовать 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 

Когда я исследую вариабельные ручки моего графического интерфейса, чтобы найти ручки в tabpanels, я не вижу их. Если я открою файл .fig моего gui, они не появятся, поэтому я не знаю, что делать, чтобы преодолеть эту проблему.

P.D. Я отправил электронное письмо автору этого приложения, но я не получил ответа.

ответ

2

Вам не нужна ручка табуляции, а фигурная ручка.

Ручка для фигуры, созданная 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) 

Имя тега tabpanel - это свойство Tag объекта статического текста, который вы использовали в качестве заполнителя при создании вкладки. Вы можете найти его, если вы откроете свой GUI в GUIDE и просмотрите свойства tabpanel с помощью Property Inspector. Это будет выглядеть как TBP_myTab.

Кстати, если вам нужно tabpanels обрабатывать их можно получить также с FindAll:

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

Большое спасибо за ваш ответ. Я только что понял, каковы были мои ошибки. – julian

+0

Привет назад. Думаю, мне понадобится ваша помощь с моим вопросом Matlab GUIDE ResizeFcn Callback. – julian