Я предполагаю, что вы используете guide
для управления вашим графическим интерфейсом, и что вы уже создали uitable
со столбцом в формате списка выбора и что для свойства ColumnEditable
установлено значение true.Это тот случай?
Затем создайте функцию CellEditCallback
, щелкнув правой кнопкой мыши на uitable
в окне руководства и выберите «Просмотр обратных вызовов» -> «CellEditCallback».Это создаст функцию обратного вызова, если она еще не существует.
Автоматически созданная функция обратного вызова может выглядеть следующим образом:
% --- Executes when entered data in editable cell(s) in uitable1.
function uitable1_CellEditCallback(hObject, eventdata, handles)
% hObject handle to uitable1 (see GCBO)
% eventdata structure with the following fields (see MATLAB.UI.CONTROL.TABLE)
% 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 to appropriate value for Data
% handles structure with handles and user data (see GUIDATA)
В этом случае тег uitable
это uitable1
.Если ваш uitable
имеет другой тег, имя функции будет соответствовать этому тегу.
Теперь запишите свой блок if
в эту функцию обратного вызова.Например, если список выбора, который вы хотите запросить, находится в первой строке и первом столбце вашего uitable
, и вы хотите проверить, является ли выбранный текст окна принятия решения «blabla», тогда ваш код будет выглядеть так:это:
if strcmp(handles.uitable1.Data{1,1}, 'blabla')
% put here the code that you want to execute if the user selects 'blabla'
end
Надеюсь, это поможет ...