Храните или извлекайте данные пользовательского интерфейса
Используйте эту функцию только с 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: 1
guidata
в GUIDEСоздайте кнопку в GUIDE, и сохраните и получите доступ к данным при нажатии кнопки. Для этого сначала добавьте поле в handles
структура и использование guidata
для обновления и управления им. (Убедитесь, что добавили данные к handles
вместо того, чтобы перезаписывать его. Для получения дополнительной информации смотрите HOW GUIDE Uses guidata.) Затем сконфигурируйте коллбэк, который использует guidata
для доступа и хранения данных при нажатии кнопки.
Для этого сначала откройте GUIDE и добавьте кнопку в область размещения. Затем щелкните значок Editor, чтобы открыть программный файл для редактирования. Найдите 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
.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.