Je l'ai créé dans Matlab avec menu déroulant. en quelque sorte le menu déroulant ne sont pas mis à jour avec le commutateur/casMatlab Uitable avec menu déroulant
J'ai essayé en remplaçant le commutateur/cas si la condition d'autre. le menu déroulant est mis à jour mais il ne me donne pas la sortie désirée!
pour simuler s'il vous plaît exécuter le code ci-dessous
Toute idée ou pointeurs?
function [] =foouitable()
f = figure('Position',[100 100 400 150]);
% Column names and column format
columnname = {'Available','Options','SubOptions'};
columnformat = {'logical','bank',{'CheckBox' 'SelectSubOptions'}};
% Define the data
d = {false 'Reconstruction' 'CheckBox';...
false 'Segmentation' 'CheckBox';...
false 'ComputerTomography' 'CheckBox';...
false, 'UltraSound', 'CheckBox';...
false, 'AcousticEmission', 'CheckBox'};
% Create the uitable
t = uitable('Data', d,...
'ColumnWidth', {70 120 100},...
'ColumnName', columnname,...
'ColumnFormat', columnformat,...
'ColumnEditable', [true false true],...
'RowName',[],...
'CellEditCallback',@edit)
set(t,'Tag','Config_table');
function edit(src,evt)
if evt.Indices(2) == 1
modifyPopup(src)
end
end
% Set width and height
t.Position(3) = t.Extent(3);
t.Position(4) = t.Extent(4);
function modifyPopup(src)
id_group_1 = {'A.1';'A.2';'A.3'};
id_group_2 = {'B.1';'B.2';'B.3'};
id_group_3 = {'C.1';'C.2';'C.3'};
id_group_4 = {'D.1';'D.2';'D.3'};
id_group_5 = {'E.1';'E.2';'E.3'};
id_default = {'CheckBox'};
config_data = get(src,'Data');
selector = config_data(1:5,1);
selector = cell2mat(selector);
config_format = get(src,'ColumnFormat');
if isequal(selector(1),1)
config_format{3} = id_group_1';
elseif isequal(selector(2),1)
config_format{3} = id_group_2';
elseif isequal(selector(3),1)
config_format{3} = id_group_3';
elseif isequal(selector(4),1)
config_format{3} = id_group_4';
elseif isequal(selector(5),1)
config_format{3} = id_group_5';
else
config_format{3} = id_default;
end
set(src,'Data',config_data);
set(src,'ColumnFormat',config_format);
end
end
Merci d'avance!
Veuillez fournir le code qui reproduit votre problème sans étapes de décomposition compliquées et expliquez quelle est la sortie souhaitée. – excaza
J'ai modifié le code comme suggéré mon excaza. Lorsque je coche l'une des cases à cocher, je veux que le menu déroulant correspondant affiche les valeurs du groupe, tandis que les autres menus déroulants doivent rester inchangés. – sssc
Pourquoi modifiez-vous 'config_format' dans votre bloc' if' et non dans 'config_data'? Pourquoi modifiez-vous '' ColumnFormat 'du tout? – excaza