Как написать обратный вызов для всплывающего меню в Matlab?

У меня есть четыре элемента (типы почв), которые нужно вставить во всплывающее меню, и на выходе должны быть целые значения (пористость), отображаемые с использованием статического текста. Как это можно сделать?


person user3410944    schedule 17.09.2014    source источник


Ответы (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

Надеюсь, это поможет вам начать!

person Benoit_11    schedule 17.09.2014