我的代码真的太长了,无法在这里发布,即使是很少的部分。所以我只想要一两件事: 在我看来,当修改一个合适的'ht'的'数据'属性时:
set(ht, 'Data', something);
触发了“cellSelectionCallback”例程(因为选择很可能已经发生了变化),但在数据集修改后不能立即进行。
谢谢!
答案 0 :(得分:2)
我使用的是代码,例如:
tbl = uitable('Parent', fh, 'CellSelectionCallback',{@cell_select_callback fh});
我做了一个快速实验,当使用set(tbl,'Data',my_data)
时,如果set
导致所选单元格发生变化,则会触发仅回调,这会立即发生(据我所知 - 我没有看到明显的延迟。
要停止发生这种情况,您可以取消设置CellSelectionCallback
属性,更改数据,然后重置CellSelectionCallback
。
答案 1 :(得分:1)
我有同样的问题。收到index out of bounds
警告。要摆脱我在CallSelectionCallback
中使用过的那些:
if ~isempty(eventdata.Indices)
// all the code
end
当set命令触发CallSelectionCallback
时,eventdata.Indices
为空。
答案 2 :(得分:1)
与Sebastien的答案类似的可能性是将它放在你的cellselectioncallback函数中:
function output = mycellselection(source,event)
if isempty(event.Indixes)
output = [];
return
end
% rest of your code for cell selection
end
如果您不需要任何输出,则可以将其删除。我只是把它放在那里提醒你,你必须为任何输出分配一个值。