guidata

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

Используйте эту функцию только с GUIDE, или с приложениями, созданными с помощью функции figure.

Синтаксис

guidata(obj,data)
data = guidata(obj)

Описание

пример

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, Axes, 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