Сохраните или получите данные пользовательского интерфейса
Используйте эту функцию только с 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: 1obj — Графический объектГрафический объект, такой как 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.