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