EDA365电子论坛网
标题:
MATLAB 用GUI中UItable如何删除指定行呀?
[打印本页]
作者:
Houseefe
时间:
2022-3-15 10:00
标题:
MATLAB 用GUI中UItable如何删除指定行呀?
我在做matlab GUI时,想在uitable中实现以下功能:
* m ]& T7 G- D6 M' i
选中某行数据时,点击删除,将改行的数据删除。我的想法是当鼠标选中该行时,在uitable的CellSelectionCallback函数中利用
7 f- n) {. ~5 I* k. r
row = eventdata.Indices(1)获得选中的数据所在的行,然后将表中该行数据删除,最后利用
! ?) }' e6 f) r
set(handles.uitable1,'Data',newdata)更新表中的数据显示。
( j2 \. w" g- @( Z3 _ d! V& Y- k
在实际操作中,当我删除了选中行以后,该行的数据的确被删除了,同时matlab也抛出了一个错误:
( j% i' Y8 f: p5 O
索引超出数组元素的数目(0)。
# H( n$ I3 O/ z- `3 [ @
4 s$ O9 p. l: e+ V- ~$ c# ~
请问如何处理呀?
' v, l; f4 o9 L& w7 T6 I5 H
, w: Z) Y5 W4 L
作者:
WWolla
时间:
2022-3-15 10:18
这个比较简单的,你在uitable 的数据里面加一列为 logic 数据,全部为0
9 a: }( w% Q: [& J2 H6 F/ d
然后在控件中设置该列为可操作, 然后显示的时候就可以显示为可勾选的列
8 ^! j- m% h% w" O3 t5 o
7 n: G6 Q) A# Q; t
点击相关行的这一列 选择需要删除的行, 然后弄个删除按钮, 在按钮回调函数里面 获取 uitable 的data数据,对logic 列进行判断 为1 的进行删除 然后将处理好的数据重新指向 uitable 控件就行了
作者:
unix16785
时间:
2022-3-15 10:25
如果只每次删除一样没有删除多行的需求, 可以在 select 回调函数里面这样做就行了 个人建议别这样,容易误动 而且我觉得直接在回调里面删除一行有可能产生逻辑性错误, 因为 数据变更后 row = eventdata.Indices(1) 这部分会出现冲突,你的报错很可能是这个原因产生的,我还是建议上面的办法
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2