guidata

Сохраните или получите данные пользовательского интерфейса

Описание

пример

Примечание

Храня данные о приложении в UserData свойство фигуры главного приложения рекомендуется по использованию guidata, потому что это может привести к большему количеству читаемого кода. Для получения дополнительной информации о хранении и совместном использовании данных о приложении, смотрите, Осуществляют обмен данными Среди Коллбэков.

guidata(obj,data) хранит заданные данные в данных приложения obj если это - фигура или родительская фигура obj если это - другой компонент. Для получения дополнительной информации смотрите, Как guidata Управляет Данными.

пример

data = guidata(obj) возвращает ранее хранимые данные или пустую матрицу, если ничто не хранится.

Примеры

свернуть все

Создайте программируемый пользовательский интерфейс, который хранит и получает данные счетчика, когда вы нажимаете на него.

Во-первых, создайте программный файл под названием progCounter.m. В программном файле:

  • Создайте фигуру.

  • Создайте структуру со значением поля, инициализированным, чтобы обнулить.

  • Храните данные на рисунке.

  • Задайте функцию обратного вызова, которая получает данные от фигуры, изменяет данные и хранит новые данные на рисунке снова.

Запустите программу и нажатие кнопки в фигуре. Обновленные данные появляются в Командном окне.

f = figure;
data.numberOfClicks = 0; 
guidata(f,data)
f.ButtonDownFcn = @My_Callback;

function My_Callback(src,event)
data = guidata(src);
data.numberOfClicks = data.numberOfClicks + 1;
guidata(src,data)
data
end
data = 

  struct with fields:

    numberOfClicks: 1

Создайте кнопку в GUIDE, и хранилище и данные о доступе, когда кнопка будет нажата. Для этого сначала добавьте поле в handles структура и использование guidata обновить и управлять им. (Убедитесь, что добавили данные в handles вместо того, чтобы перезаписывать его. Для получения дополнительной информации смотрите Как Использование GUIDE guidata.) Затем сконфигурируйте коллбэк, который использует guidata получить доступ и хранить данные, когда кнопка нажимается.

Для этого, во-первых, откройте GUIDE и добавьте кнопку в область размещения. Затем нажмите на значок Редактора, чтобы открыть программный файл для редактирования. Найдите OpeningFcn это было автоматически создано GUIDE, и добавьте новое поле в handles названный numberOfClicks.

% --- Executes just before countClicks is made visible.
function countClicks_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to countClicks (see VARARGIN)

% Choose default command line output for countClicks
handles.output = hObject;

handles.numberOfClicks = 0;

% Update handles structure
guidata(hObject, handles);

Затем найдите функцию обратного вызова кнопки тем GUIDE созданный. Программируйте его, чтобы получить доступ к данным, хранимым в handles, измените его, сохраните измененные данные к структуре и отобразите новые данные в Командном окне. Заметьте, что в GUIDE вы используете hObject, вместо src, относиться к объекту, коллбэк которого выполняется.

% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

handles.numberOfClicks = handles.numberOfClicks + 1;
guidata(hObject,handles)
data = guidata(hObject)
>> countClicks

data = 

  struct with fields:

           figure1: [1×1 Figure]
       pushbutton1: [1×1 UIControl]
            output: [1×1 Figure]
    numberOfClicks: 1

Входные параметры

свернуть все

Графический объект, такой как FigureОси, Illustration, или объект пользовательского интерфейса. Используйте этот аргумент, чтобы задать фигуру, которая хранит data. Если заданный объект не будет фигурой, то родительская фигура объекта будет использоваться, чтобы сохранить data.

Данные, чтобы сохранить на рисунке в виде любых данных MATLAB. Как правило, data задан как структура, которая позволяет вам добавить новые поля по мере необходимости. Например, создайте структуру данных с полем под названием Category, храните данные от поля в структуре и отобразите хранимые данные в Командном окне:

data.Category = 'Projected Growth';
guidata(gcf,data);
data = guidata(gcf)

Алгоритмы

свернуть все

Как guidata Управляет данными

guidata может управлять только одной переменной на родительскую фигуру в любое время. Последующие вызовы guidata(obj,data) перезапишите ранее хранимые данные. Храните дополнительные данные путем создания структуры с несколькими полями.

Как GUIDE использует guidata

Использование GUIDE guidata сохранить и обеспечить структуру под названием handles. В файле кода GUIDE не перезаписывайте handles структура или ваша программа больше не будут работать. Если необходимо хранить другие данные, можно сделать так путем добавления новых полей в handles структура.

Смотрите также

| | | |

Представлено до R2006a