0
有沒有辦法使用鼠標右鍵單擊在uitable
中刪除一行,類似於在Excel中完成的方式?我期望這樣做是爲了只保存我想要的數據而不是全部表格。刪除可用的選定行
有沒有辦法使用鼠標右鍵單擊在uitable
中刪除一行,類似於在Excel中完成的方式?我期望這樣做是爲了只保存我想要的數據而不是全部表格。刪除可用的選定行
你可以引入一個pushbutton
:
function myTable
close all
h = figure('Position',[600 400 402 100],'numbertitle','off','MenuBar','none');
defaultData = rand(5,2);
uitable(h,'Units','normalized','Position',[0 0 1 1],...
'Data', defaultData,...
'Tag','myTable',...
'ColumnName', [],'RowName',[],...
'CellSelectionCallback',@cellSelect);
tb = uitoolbar(h);
uipushtool(tb,'ClickedCallback',@deleteRow);
end
function cellSelect(src,evt)
index = evt.Indices;
if any(index)
rows = index(:,1);
set(src,'UserData',rows);
end
end
function deleteRow(~,~)
th = findobj('Tag','myTable');
data = get(th,'Data');
rows = get(th,'UserData');
mask = (1:size(data,1))';
mask(rows) = [];
data = data(mask,:);
set(th,'Data',data);
end
例如:
選擇一行,並按下按鈕將其刪除。 您也可以選擇多行並一次刪除它們!
這不完全是你想要的,但你的要求似乎很難實現。您將需要處理java對象,這不是最簡單的方法。
我不想說這是不可能的,但如果你只是去pushbutton
,那麼你將節省很多時間。 Matlab的是不爲:)
在這個例子中,按鈕沒有圖標製作,添加一個,讀this article
非常感謝。我會在稍後檢查 – user1212200