Обратные вызовы для определенных компонентов

Кодирование поведения компонента пользовательского интерфейса включает определенные задачи, которые уникальны для типа компонента, с которым вы работаете. Эта тема содержит простые примеры коллбэков для каждого типа компонента. Примеры записаны для GUIDE, если не указано иное. Для получения общей информации о кодировании коллбэков, смотрите Запись обратных вызовов в GUIDE или Запись обратных вызово для приложений, созданных программно.

Как использовать пример кода

Если вы работаете в GUIDE, то щелкните правой кнопкой по компоненту в своем размещении и выберите соответствующее свойство коллбэка из меню View Callbacks. Выполнение так создает пустую функцию обратного вызова, которая автоматически сопоставлена с компонентом. Определенное имя функции, которое создает GUIDE, основано на свойстве Tag компонента, таким образом, ваше имя функции может немного отличаться, чем имя функции в примере кода. Не меняйте имя функции, которое GUIDE создает в вашем коде. Чтобы использовать пример кода в вашем приложении, скопируйте код с тела функции примера в тело вашей функции.

Если вы создаете приложение программно, (без GUIDE), то можно адаптировать пример кода в код. Чтобы адаптировать пример в ваш код, не используйте третий входной параметр, handles, из функционального определения. Кроме того, замените любые ссылки на массив handles с соответствующим указателем на объект. Чтобы сопоставить функцию обратного вызова с компонентом, установите свойство коллбэка компонента быть указателем на функцию обратного вызова. Например, эта команда создает компонент кнопки и устанавливает свойство Callback быть указателем на функцию, pushbutton1_callback.

свинец = uicontrol ('Стиль', 'кнопка', 'Callback',@pushbutton1_Callback);

Кнопка

Этот код является примером функции обратного вызова кнопки в GUIDE. Сопоставьте эту функцию со свойством кнопки Callback заставить его выполниться, когда конечный пользователь нажмет на кнопку.

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)
display('Goodbye');
close(gcf);

Первая строка кода, display('Goodbye'), отображает 'Goodbye' в Командном окне. Следующая строка получает окно UI с помощью gcf и затем закрывает его.

Кнопка-переключатель

Этот код является примером функции обратного вызова кнопки-переключателя в GUIDE. Сопоставьте эту функцию со свойством Callback кнопки-переключателя заставить его выполниться, когда конечный пользователь нажмет на кнопку-переключатель.

function togglebutton1_Callback(hObject,eventdata,handles)
% hObject    handle to togglebutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of togglebutton1
button_state = get(hObject,'Value');
if button_state == get(hObject,'Max')
	display('down');
elseif button_state == get(hObject,'Min')
	display('up');
end

Свойство Value кнопки-переключателя совпадает со свойством Min, когда кнопка-переключатель произошла. Value изменяется на значение Max, когда кнопка-переключатель подавлена. Эта функция обратного вызова получает свойство Value кнопки-переключателя и затем сравнивает его со свойствами Max и Min. Если кнопка подавлена, то функция отображает 'down' в Командном окне. Если кнопка возросла, то функция отображает 'up'.

Переключатель

Этот код является примером функции обратного вызова переключателя в GUIDE. Сопоставьте эту функцию со свойством переключателя Callback заставить его выполниться, когда конечный пользователь нажмет на переключатель.

function radiobutton1_Callback(hObject, eventdata, handles)
% hObject    handle to radiobutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton1

if (get(hObject,'Value') == get(hObject,'Max'))
	display('Selected');
else
	display('Not selected');
end

Свойство Value переключателя совпадает со свойством Min, когда переключатель не устанавливается. Value изменяется на значение Max, когда переключатель устанавливается. Эта функция обратного вызова получает свойство Value переключателя и затем сравнивает его со свойствами Max и Min. Если кнопка нажимается, то функция отображает 'Selected' в Командном окне. Если кнопка не нажимается, то функция отображает 'Not selected'.

Примечание

Используйте группу кнопок, чтобы управлять исключительным поведением выбора для переключателей. Смотрите Группу кнопок для получения дополнительной информации.

Флажок

Этот код является примером функции обратного вызова флажка в GUIDE. Сопоставьте эту функцию со свойством флажка Callback заставить его выполниться, когда конечный пользователь нажмет на флажок.

function checkbox1_Callback(hObject, eventdata, handles)
% hObject    handle to checkbox1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of checkbox1

if (get(hObject,'Value') == get(hObject,'Max'))
	display('Selected');
else
	display('Not selected');
end

Свойство Value флажка совпадает со свойством Min, когда флажок не устанавливается. Value изменяется на значение Max, когда флажок устанавливается. Эта функция обратного вызова получает свойство Value флажка и затем сравнивает его со свойствами Max и Min. Если флажок устанавливается, функция отображает 'Selected' в Командном окне. Если флажок не устанавливается, он отображает 'Not selected'.

Редактирование текстового поля

Этот код является примером коллбэка для текстового поля редактирования в GUIDE. Сопоставьте эту функцию со свойством Callback uicontrol заставить его выполниться, когда конечный пользователь введет в текстовом поле.

function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
%        str2double(get(hObject,'String')) returns contents as double
input = get(hObject,'String');
display(input);

Когда пользователь вводит символы в текстовом поле и нажимает клавишу Enter, функция обратного вызова получает те символы и отображает их в Командном окне.

Чтобы позволить пользователям ввести несколько строк текста, установите свойства Max и Min на числовые значения, которые удовлетворяют Max - Min > 1. Например, установите Max на 2 и Min к 0 удовлетворять неравенство. В этом случае функция обратного вызова инициировала, когда конечный пользователь нажимает на область в пользовательском интерфейсе, который является за пределами текстового поля.

Получение числовых значений

Если вы хотите интерпретировать содержимое текстового поля редактирования как числовые значения, то преобразуйте символы в числа с помощью функции str2double. Функция str2double возвращает NaN для нечислового входа.

Этот код является примером функции обратного вызова текстового поля редактирования, которая интерпретирует вход пользователя как числовые значения.

function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents as a double
input = str2double(get(hObject,'String'));
if isnan(input)
  errordlg('You must enter a numeric value','Invalid Input','modal')
  uicontrol(hObject)
  return
else
  display(input);
end

Когда конечный пользователь вводит значения в текстовое поле редактирования и нажимает клавишу Enter, функция обратного вызова получает значение свойства String и преобразовывает его в числовое значение. Затем это проверяет, чтобы видеть, является ли значением (нечисловой) NaN. Если входом является NaN, то коллбэк представляет ошибочное диалоговое окно.

Ползунок

Этот код является примером функции обратного вызова ползунка в GUIDE. Сопоставьте эту функцию со свойством Callback ползунка заставить его выполниться, когда конечный пользователь переместит ползунок.

function slider1_Callback(hObject, eventdata, handles)
% hObject    handle to slider1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider
%        get(hObject,'Min') and get(hObject,'Max') to determine...
slider_value = get(hObject,'Value');
display(slider_value);

Когда конечный пользователь перемещает ползунок, функция обратного вызова получает текущее значение ползунка и отображает его в Командном окне. По умолчанию область значений ползунка [0, 1]. Чтобы изменить область значений, установите свойства Max и Min ползунка на максимальные и минимальные значения, соответственно.

Поле списка

Заполнение элементов в поле списка

Если вы разрабатываете приложение с помощью GUIDE, используйте поле списка коллбэк CreateFcn, чтобы добавить элементы в поле списка.

Этот код является примером поля списка коллбэк CreateFcn, который заполняет поле списка с элементами, Red, Green и Blue.

function listbox1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to listbox1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns

% Hint: listbox controls usually have a white background on Windows.
if ispc && isequal(get(hObject,'BackgroundColor'), ...
    get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
set(hObject,'String',{'Red';'Green';'Blue'});
Последняя строка, set(hObject,'String',{'Red';'Green';'Blue'}), заполняет содержимое поля списка.

Если вы разрабатываете приложение программно (без GUIDE), то заполняете поле списка, когда вы создаете его. Например:

function myui()
	figure
	uicontrol('Style','Listbox',...
	'String',{'Red';'Green';'Blue'},...
 	'Position',[40 70 80 50]);
end

Изменение выбранного пункта

Когда конечный пользователь выбирает элемент поля списка, изменения свойства Value поля списка в номере, который соответствует положению элемента в списке. Например, значение 1 соответствует первому элементу в списке. Если вы хотите изменить выбор в своем коде, затем изменить свойство Value на другой номер между 1 и количество элементов в списке.

Например, можно использовать структуру handles в GUIDE, чтобы получить доступ к полю списка и изменить свойство Value:

set(handles.listbox1,'Value',2)

Первый аргумент, handles.listbox1, может отличаться в вашем коде, в зависимости от значения свойства Tag поля списка.

Запись функции обратного вызова

Этот код является примером функции обратного вызова поля списка в GUIDE. Сопоставьте эту функцию со свойством Callback поля списка заставить его выполниться когда выборы элемент в поле списка.

function listbox1_Callback(hObject, eventdata, handles)
% hObject    handle to listbox1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% Hints: contents = cellstr(get(hObject,'String')) returns contents
% contents{get(hObject,'Value')} returns selected item from listbox1
items = get(hObject,'String');
index_selected = get(hObject,'Value');
item_selected = items{index_selected};
display(item_selected);

Когда конечный пользователь выбирает элемент в поле списка, функция обратного вызова выполняет следующие задачи:

  • Получает все элементы в поле списка и хранит их в переменной, items.

  • Получает числовой индекс выбранного пункта и хранит его в переменной, index_selected.

  • Получает значение выбранного пункта и хранит его в переменной, item_selected.

  • Отображает выбранный пункт в Командном окне MATLAB®.

Пример, Приложение с интерактивным списком в GUIDE показывает, как заполнить поле списка с именами каталогов.

Всплывающее меню

Заполнение элементов во всплывающем меню

Если вы разрабатываете приложение с помощью GUIDE, используйте коллбэк всплывающего меню CreateFcn, чтобы добавить элементы во всплывающее меню.

Этот код является примером коллбэка всплывающего меню CreateFcn, который заполняет меню с элементами, Red, Green и Blue.

function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject    handle to popupmenu1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns

% Hint: popupmenu controls usually have a white background on Windows.
if ispc && isequal(get(hObject,'BackgroundColor'),...
    get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
set(hObject,'String',{'Red';'Green';'Blue'});
Последняя строка, set(hObject,'String',{'Red';'Green';'Blue'}), заполняет содержимое всплывающего меню.

Если вы разрабатываете приложение программно (без GUIDE), то заполняете всплывающее меню, когда вы создаете его. Например:

function myui()
	figure
	uicontrol('Style','popupmenu',...
	'String',{'Red';'Green';'Blue'},...
	'Position',[40 70 80 20]);
end

Изменение выбранного пункта

Когда конечный пользователь выбирает элемент, изменения свойства Value всплывающего меню в номере, который соответствует положению элемента в меню. Например, значение 1 соответствует первому элементу в списке. Если вы хотите изменить выбор в своем коде, затем изменить свойство Value на другой номер между 1 и количество элементов в меню.

Например, можно использовать структуру handles в GUIDE, чтобы получить доступ к всплывающему меню и изменить свойство Value:

set(handles.popupmenu1,'Value',2)

Первый аргумент, handles.popupmenu1, может отличаться в вашем коде, в зависимости от значения свойства всплывающего меню Tag.

Запись функции обратного вызова

Этот код является примером функции обратного вызова всплывающего меню в GUIDE. Сопоставьте эту функцию со свойством всплывающего меню Callback заставить его выполниться, когда конечный пользователь выберет элемент из меню.

function popupmenu1_Callback(hObject, eventdata, handles)
% hObject    handle to popupmenu1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns contents...
%        contents{get(hObject,'Value')} returns selected item...
items = get(hObject,'String');
index_selected = get(hObject,'Value');
item_selected = items{index_selected};
display(item_selected);

Когда пользователь выбирает элемент во всплывающем меню, функция обратного вызова выполняет следующие задачи:

  • Получает все элементы во всплывающем меню и хранит их в переменной, items.

  • Получает числовой индекс выбранного пункта и хранит его в переменной, index_selected.

  • Получает значение выбранного пункта и хранит его в переменной, item_selected.

  • Отображает выбранный пункт в Окне Команды MATLAB.

Панель

Создание панели ответить на нажатия кнопок

Можно создать функцию обратного вызова, которая выполняется, когда конечный пользователь щелкает правой кнопкой или щелкает левой кнопкой по панели. Если вы работаете в GUIDE, то щелкните правой кнопкой по панели по размещению и выберите View Callbacks> ButtonDownFcn, чтобы создать функцию обратного вызова.

Этот код является примером коллбэка ButtonDownFcn в GUIDE.

function uipanel1_ButtonDownFcn(hObject, eventdata, handles)
% hObject    handle to uipanel1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
display('Mouse button was pressed');
Когда конечный пользователь нажимает на панель, эта функция отображает текст, 'Mouse button was pressed', в Командном окне.

Изменение размеров окна и панели

По умолчанию GUIDE UI не могут быть изменены, но можно заменить это поведение путем выбора Tools> GUI Options и установка Resize behavior к Proportional.

Программируемый UIs может быть изменен по умолчанию, и можно изменить это поведение путем установки свойства Resize фигуры по или прочь.

Когда окно UI изменяемого размера, положение компонентов в окне настраивают, когда пользователь изменяет размер его. Если у вас будет панель в вашем пользовательском интерфейсе, то размер панели изменится с размером окна. Используйте коллбэк SizeChangedFcn панели, чтобы заставить ваше приложение выполнить определенные задачи, когда панель изменит размер.

Этот код является примером коллбэка SizeChangedFcn панели в приложении GUIDE. Когда пользователь изменяет размер окна, эта функция изменяет размер шрифта статического текста в панели.

function uipanel1_SizeChangedFcn(hObject, eventdata, handles)
% hObject    handle to uipanel1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
set(hObject,'Units','Points')               
panelSizePts = get(hObject,'Position');     
panelHeight = panelSizePts(4);
set(hObject,'Units','normalized');          
newFontSize = 10 * panelHeight / 115;       
texth = findobj('Tag','text1');
set(texth,'FontSize',newFontSize);

Если ваш пользовательский интерфейс будет содержать вложенные панели, то они изменят размер от вывернутого наизнанку (в порядке дочернего элемента к родительскому элементу).

Примечание

Чтобы заставить текст в панели изменить размер автоматически, установите свойство fontUnits на 'normalized'.

Группа кнопок

Группы кнопок подобны панелям, но они также справляются с исключительным выбором переключателей и кнопок-переключателей. Когда группа кнопок содержит несколько переключателей или кнопок-переключателей, группа кнопок позволяет конечному пользователю выбирать только одного из них.

Не кодируйте коллбэки для отдельных кнопок, которые являются в группе кнопок. Вместо этого используйте коллбэк SelectionChangedFcn группы кнопок, чтобы ответить, когда конечный пользователь нажмет кнопку.

Этот код является примером группы кнопок коллбэк SelectionChangedFcn, который управляет двумя переключателями и двумя кнопками-переключателями.

function uibuttongroup1_SelectionChangedFcn(hObject, eventdata, handles)
% hObject    handle to the selected object in uibuttongroup1 
% eventdata  structure with the following fields
%	EventName: string 'SelectionChanged' (read only)
%	OldValue: handle of the previously selected object or empty
%	NewValue: handle of the currently selected object
% handles    structure with handles and user data (see GUIDATA)
switch get(eventdata.NewValue,'Tag') % Get Tag of selected object.
    case 'radiobutton1'
        display('Radio button 1');
    case 'radiobutton2'
        display('Radio button 2');
    case 'togglebutton1'
        display('Toggle button 1');
    case 'togglebutton2'
        display('Toggle button 2');
end

Когда конечный пользователь устанавливает переключатель или кнопку-переключатель в группе кнопок, эта функция определяет, которые снабжают кнопками пользователя, выбранного на основе свойства Tag кнопки. Затем это выполняет код в соответствующем case.

Примечание

Свойство SelectedObject группы кнопок содержит указатель на кнопку, которую нажал тот пользователь. Можно использовать это свойство в другом месте в коде, чтобы определить, которые нажимают на кнопку, пользователь выбрал.

Пункт меню

Код в этом разделе содержит функции обратного вызова в качестве примера, которые отвечают, когда конечный пользователь выбирает Edit> Copy> To File в этом меню.

% --------------------------------------------------------------------
function edit_menu_Callback(hObject, eventdata, handles)
% hObject    handle to edit_menu (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
display('Edit menu selected');

% --------------------------------------------------------------------
function copy_menu_item_Callback(hObject, eventdata, handles)
% hObject    handle to copy_menu_item (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
display('Copy menu item selected');

% --------------------------------------------------------------------
function tofile_menu_item_Callback(hObject, eventdata, handles)
% hObject    handle to tofile_menu_item (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[filename,path] = uiputfile('myfile.m','Save file name');
Имена функций могут отличаться в вашем коде, в зависимости от имен тега, которые вы задаете в Редакторе МЕНЮ ПОДСКАЗКИ.

Функции обратного вызова инициировали в ответ на эти действия:

  • Когда конечный пользователь выбирает меню Edit, функция edit_menu_Callback отображает текст, 'Edit menu selected', в Окне Команды MATLAB.

  • Когда конечный пользователь наводит, мышь по пункту меню Copy, the copy_menu_item_Callback функция отображает текст, 'Copy menu item selected', в Окне Команды MATLAB.

  • Когда конечный пользователь кликает и отпускает кнопку мыши на пункте меню To File, функция tofile_menu_item_Callback отображает диалоговое окно, которое предлагает конечному пользователю выбирать папку назначения и имя файла.

Вызовы функции tofile_menu_item_Callback uiputfile функционируют, чтобы предложить конечному пользователю предоставлять целевой файл и папку. Если вы хотите создать пункт меню, который предлагает пользователю существующий файл, например, если ваш пользовательский интерфейс имеет пункт меню Open File, то используйте функцию uigetfile.

Когда вы создаете подменю как этот, промежуточный триггер пунктов меню, когда мышь наводит на них. Финал, завершение, пункт меню инициировал, когда кнопка мыши выпускает по пункту меню.

Как обновить проверку пункта меню

Можно добавить галочку рядом с пунктом меню, чтобы указать, что опция включена. В GUIDE можно выбрать Галочку этот элемент в Редакторе меню, чтобы сделать пункт меню проверяемым по умолчанию. Каждый раз, когда конечный пользователь выбирает пункт меню, функция обратного вызова может включить или выключить проверку.

Этот код показывает, как изменить галочку рядом с пунктом меню.

if strcmp(get(hObject,'Checked'),'on')
    set(hObject,'Checked','off');
else 
    set(hObject,'Checked','on');
end

Функция strcmp сравнивает два вектора символов и возвращает true, когда они соответствуют. В этом случае это возвращает true, когда свойство Checked пункта меню совпадает с вектором символов, 'on'.

Смотрите Создают Меню для Приложений GUIDE для получения дополнительной информации о создании пунктов меню в GUIDE. Смотрите Создают Меню для Программных приложений для получения дополнительной информации о создании пунктов меню программно.

Таблица

Этот код является примером табличной функции обратного вызова, CellSelectionCallback. Сопоставьте эту функцию со свойством таблицы CellSelectionCallback заставить его выполниться, когда конечный пользователь выберет ячейки в таблице.

function uitable1_CellSelectionCallback(hObject, eventdata, handles)
% hObject    handle to uitable1 (see GCBO)
% eventdata  structure with the following fields
%   Indices: row and column indices of the cell(s) currently selected
% handles    structure with handles and user data (see GUIDATA)
data = get(hObject,'Data');
indices = eventdata.Indices;
r = indices(:,1);
c = indices(:,2);
linear_index = sub2ind(size(data),r,c);
selected_vals = data(linear_index);
selection_sum = sum(sum(selected_vals))

Когда конечный пользователь выбирает ячейки в таблице, эта функция выполняет следующие задачи:

  • Получает все значения в таблице и хранит их в переменной, data.

  • Получает индексы выбранных ячеек. Эти индексы соответствуют строкам и столбцам в data.

  • Преобразовывает индексы строки и столбца в линейные индексы. Линейные индексы позволяют вам выбирать несколько элементов в массиве с помощью одной команды.

  • Получает значения, что конечный пользователь выбрал и хранит их в переменной, selected_vals.

  • Суммирует все выбранные значения и отображает результат в Командном окне.

Этот код является примером табличной функции обратного вызова, CellEditCallback. Сопоставьте эту функцию со свойством таблицы CellEditCallback заставить его выполниться, когда конечный пользователь отредактирует ячейку в таблице.

function uitable1_CellEditCallback(hObject, eventdata, handles)
% hObject    handle to uitable1 (see GCBO)
% eventdata  structure with the following fields
%	Indices: row and column indices of the cell(s) edited
%	PreviousData: previous data for the cell(s) edited
%	EditData: string(s) entered by the user
%	NewData: EditData or its converted form set on the Data property.
% Empty if Data was not changed
% Error: error string when failed to convert EditData
data = get(hObject,'Data');
data_sum = sum(sum(data))
Когда конечный пользователь закончил редактировать ячейку таблицы, эта функция получает все значения в таблице и вычисляет сумму всех табличных значений. Свойство ColumnEditable должно собираться в true по крайней мере в одном столбце позволить конечному пользователю редактировать ячейки в таблице. Для получения дополнительной информации о составлении таблиц и изменении их свойств в GUIDE, смотрите, Добавляют Компоненты к области Компоновки GUIDE.

Оси

Код в этом разделе является примером оси ButtonDownFcn, который инициировал, когда конечный пользователь нажимает на оси.

function axes1_ButtonDownFcn(hObject, eventdata, handles)
% hObject    handle to axes1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
pt = get(hObject,'CurrentPoint')
Координаты указателя отображаются в Окне Команды MATLAB, когда конечный пользователь нажимает на оси (но не, когда тот пользователь нажимает на другой графический объект, порожденный к осям).

Примечание

Большинство функций построения графика MATLAB очищает оси и сбрасывает много свойств осей, включая ButtonDownFcn, прежде, чем отобразить данные на графике. Чтобы создать интерфейс, который позволяет конечному пользователю отобразить данные на графике в интерактивном режиме, полагайте, что обеспечение компонента, такого как кнопка управляет графическим выводом. Свойства таких компонентов незатронуты функциями построения графика. Если необходимо использовать оси ButtonDownFcn, чтобы отобразить данные на графике, то используйте функции, такие как line, patch и surface.

Похожие темы