Как добавить компоненты в существующий графический интерфейс, созданный руководством? - PullRequest
4 голосов
/ 01 февраля 2011

Я только что создал графический интерфейс с использованием руководства в MATLAB для небольшого проекта, над которым я работаю. У меня есть среди прочего два текстовых поля для от и до дат. Теперь я хотел бы избавиться от них и использовать инструмент выбора даты Java. Конечно, это невозможно с помощью руководства, поэтому мне нужно добавить их вручную. Мне удалось заставить их обнаружиться, поместив этот код в мой Opening_Fcn,

uicomponent(handles, 'style','com.jidesoft.combobox.DateChooserPanel','tag','til2');

с использованием UICOMPONENT .

Но, несмотря на то, что он появляется, я не могу получить доступ к атрибутам выбора даты, например

get(handles.til2)

возвращает

??? Reference to non-existent field 'til2'.

Как я могу это исправить?

1 Ответ

3 голосов
/ 01 февраля 2011

Если вы не отредактируете сохраненный рисунок GUI, базовая структура handles не будет включать ваш новый компонент по умолчанию.

Один из способов доступа к компоненту - сохранить дескриптор с помощью guidata, добавив к функции открытия следующее:

handles.til2 = uicomponent(handles, 'style','com.jidesoft.combobox.DateChooserPanel','tag','til2');
guidata(hObject,handles)

Для функций, которым требуется доступ к дескриптору, требуется строка

handles = guidata(hObject) 

для возврата полной структуры дескрипторов, которая включает поле til2

...