1

我正在创建一个 GUI(不使用 GUIDE) 我正在寻找一种方便的方式让用户输入一些数据。我认为 uitable 将是理想的,除非我似乎无法弄清楚如何存储表格中的用户输入。我宁愿不使用 celleditcallback 功能 - 理想情况下,我想在最后使用保存按钮或类似按钮一次性保存所有数据,有什么想法吗?表的代码(这是在它自己的函数中):

dat =  {0,  0,  0, true;...
        0,  0,  0, true;...   
        0,  0,  0, true;};
columnname =   {'x-pos', 'y-pos', 'dimns', 'Include?'};
NC = numel(columnname);
rowNumber = zeros(NR,NC);
columnformat = {'numeric', 'numeric', 'numeric','logical'};
columneditable =  [true true true true true];
rowname = {'Dat1','Dat2','Dat3'};
Config = uitable('Units','normalized','Position',[0 0 0.2 0.4],...
            'Data', dat,... 
            'ColumnName', columnname,...
            'ColumnFormat', columnformat,...
            'ColumnEditable', columneditable,...
            'RowName',rowname);
cell2mat(dat(:,1:3));
gh =get(Config,'Data');

提前感谢您的任何建议

4

1 回答 1

1

我认为最重要的是,在函数结束时以及将表数据分配给输出之前,您需要一个 waitfor(gcf) 。

看看这个例子:

function [out1]=myGUIwithATable(inputs..)

myTable=uitable(.......)

waitfor(gcf) 

%This command will wait until you close the GUI before doing the code after 
% it. We use this to allow you to enter all your data and whatnot, then once  
% you close the fig, it will execute your save commands

out1=get(myTable,'Data');

这样 ^^^ 就是您可以将输出变量分配给表值的方式

通过按钮保存非常容易。在您的按钮回调中,只需执行

save('fileName.mat',get(myTable,'Data'))

希望有帮助!

于 2013-06-26T14:13:55.787 回答