Использование Matlab TabPanel - PullRequest
2 голосов
/ 22 февраля 2012

Я пытаюсь использовать приложение TabPanel Constructor v2.8 . Я следовал инструкциям, данным с ним. В открытии моего графического интерфейса мне нужно выбрать одну из вкладок. Для этого я должен использовать tabselectionfcn, который является дополнением к упомянутому приложению. Эта функция имеет следующую подпись:

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

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

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

1 Ответ

2 голосов
/ 22 февраля 2012

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

Дескриптор фигуры, созданной GUIDE, по умолчанию скрыт. Его видимость контролируется свойство рисунка HandleVisibility, которое установлено в callback для графического интерфейса пользователя, чтобы защитить их от пользователя командной строки. Дескриптор виден изнутри функции обратного вызова, как

yourgui_OpeningFcn(hObject, eventdata, handles, varargin)

где hObject - нужная вам ручка. Вы можете найти все функции обратного вызова в m-файле, связанном с fig-файлом.

Вы также можете получить дескриптор снаружи графического интерфейса, открывая файл FIG как

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 статического текстового объекта, который вы использовали в качестве заполнителя при создании табуляции. Вы можете найти его, если откроете свой GUI в GUIDE и осмотрите свойства вкладки с помощью Property Inspector. Это будет выглядеть как TBP_myTab.

Кстати, если вам нужна ручка табуляции, вы можете получить их также с помощью FINDALL:

htab = findall(fh,'tag','TBP_myTab');
...