Сохраните или получите данные пользовательского интерфейса
Используйте эту функцию только с GUIDE, или с приложениями, созданными с помощью функции figure
.
guidata(obj,data)
data = guidata(obj)
guidata(
хранит заданные данные в данных приложения obj
,data
)obj
, если это - фигура или родительская фигура obj
, если это - другой компонент. Для получения дополнительной информации смотрите, Как guidata Управляет Данными.
Создайте программируемый пользовательский интерфейс, который хранит и получает данные счетчика, когда вы нажимаете на него.
Во-первых, создайте программный файл под названием 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
Используя guidata в GUIDE
Создайте кнопку в 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
obj
— Графический объектГрафический объект, такой как Figure
, Axes
, Illustration
или объект пользовательского интерфейса. Используйте этот аргумент, чтобы задать фигуру, которая хранит data
. Если заданный объект не будет фигурой, то родительская фигура объекта будет использоваться, чтобы сохранить data
.
данные
ДанныеДанные, чтобы сохранить в фигуре, заданной как любые данные MATLAB. Как правило, data
задан как структура, которая позволяет вам добавить новые поля по мере необходимости. Например, создайте структуру данных с полем под названием Category
, храните данные от поля в структуре и отобразите хранимые данные в Командном окне:
data.Category = 'Projected Growth';
guidata(gcf,data);
data = guidata(gcf)
guidata
может управлять только одной переменной на родительскую фигуру в любое время. Последующие вызовы guidata(obj,data)
перезаписывают ранее хранимые данные. Храните дополнительные данные путем создания структуры с несколькими полями.
GUIDE использует guidata
, чтобы сохранить и поддержать структуру под названием handles
. В файле кода GUIDE не перезаписывайте структуру handles
, или ваша программа больше не будет работать. Если необходимо хранить другие данные, можно сделать так путем добавления новых полей в структуру handles
.
getappdata
| guide
| guihandles
| setappdata
| struct
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.