引子
本人在使用MATLAB GUI完成毕业设计时碰到表格(uitable)的使用问题,需要实现对既有表格的增加删除功能,参考网上大神的代码有略微报错,分享自己的修改和实现思路。
参考
MATLAB GUI表格(uitable)的增删操作
Matlab GUI控件之——uitable
表格创建
本程序的界面如下图所示
1) 公共变量soil_setting
为了储存表格内的数据,程序设置了公共变量soil_setting
global soil_setting;
%soil_setting为地层参数变量
2)程序所需的表格(uitable)的回调函数
本程序表格的命名(tag)为utab_soil
查看回调函数
①打开.fig文件(在命令行中输入guide+文件名)
②通过右击控件(表格uitable)—查看回调(View Callback)—
即可查看表格的回调函数
表格回调函数的修改
本程序对uitable的CreateFcn与CellSelectionCallback进行了修改
在回调函数中依次打开上述两个回调函数,设置代码如下
function utab_soil_CreateFcn(hObject, eventdata, handles)
handles.hangIndex = -1;
%将行索引值设置为默认值-1,表示现在处于未选择状态
guidata(hObject, handles); %更新结构体
function utab_soil_CellSelectionCallback(hObject, eventdata, handles)
hang = eventdata.Indices; %获取行索引
if isempty(hang)==0 %若行索引不为空,表示用户选中表格中的某项
hangIndex = hang(1,1); %行索引赋值
handles.hangIndex = hangIndex; %把行索引添加到结构体
guidata(hObject, handles); %更新结构体