Как да напиша обратно извикване за изскачащо меню в matlab?

Имам четири елемента (типове почви), които трябва да бъдат вмъкнати в изскачащото меню и изходът трябва да бъде целочислени стойности (порьозности), показани с помощта на статичен текст. Как може да стане това?


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


Отговори (1)


Предполагам, че ще използвате GUIDE, за да създадете своя GUI. Ето прост код за попълване на изскачащо меню с предварително дефинирани низове и използване на избрания елемент, за да промените показания изход в статичния текст:

1) За да попълните изскачащото меню, просто създайте клетъчен масив от низове и задайте свойството 'String' на менюто на този клетъчен масив:

% Създаване на клетъчен масив

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