У меня есть четыре элемента (типы почв), которые нужно вставить во всплывающее меню, и на выходе должны быть целые значения (пористость), отображаемые с использованием статического текста. Как это можно сделать?
Как написать обратный вызов для всплывающего меню в Matlab?
Ответы (1)
Я предполагаю, что вы будете использовать GUIDE для создания своего графического интерфейса. Вот простой код для заполнения всплывающего меню предопределенными строками и использования выбранного элемента для изменения отображаемого вывода в статическом тексте:
1) Чтобы заполнить всплывающее меню, просто создайте массив ячеек строк и установите свойство «Строка» меню для этого массива ячеек:
% Создать массив ячеек
SoilTypes = {'Soil A' 'Soil B' 'Soil C' 'Soil D'};
% Установить строковое свойство всплывающего меню:
set(handles.popupenu1,'String',SoilTypes);
2) Теперь обратный вызов, о котором вы говорите, кажется обратным вызовом изменения выбора, который может выглядеть так:
function Popupmenu1_SelectionChangeFcn(hObject, eventdata, handles)
Это выполняется, когда пользователь изменяет выбранный элемент во всплывающем меню. Следовательно, вы хотите получить выбранный элемент с помощью этой строки:
get(handles.popupmenu1,'Value')
Таким образом, в соответствии с предыдущим массивом ячеек, вы можете использовать (среди прочих опций) сценарий переключения/случая, в котором вы можете делать все, что хотите, для каждого типа почвы, например, отображать текст в статическом текстовом поле. Вы также можете установить строку непосредственно в текстовом поле следующим образом:
SelectedItem = get(handles.popupmenu1,'Value') % Get the value, from 1 to 4 in your case
set(handles.text1,'String',SoilTypes{SelectedItem}); % Display the corresponding soil type
Надеюсь, это поможет вам начать!