0
ドロップダウンメニューでMatlabでuitableを作成しました。 は何とかドロップダウンメニューは、私がもし他の条件付きスイッチ/ケースを代入しようとしたスイッチ/ケースドロップダウンメニューを備えた有益なmatlab
に更新されません。 ドロップダウンメニューが更新されますが、希望の出力が得られません。
は、任意のアイデアやポインタを以下のコードを実行してくださいシミュレートしますか?
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
ありがとうございます!
控えめなコメントを付けずに問題を再現し、希望する出力が何であるか説明してください。 – excaza
私はexcazaのようにコードを編集しました。チェックボックスの1つをチェックすると、対応するドロップダウンメニューにグループ値が表示され、他のドロップダウンメニューは変更されません。 – sssc
'config_data'ではなく' if'ブロックで 'config_format'を修正していますか?なぜ、 '' ColumnFormat ''を変更していますか? – excaza