MATLAB GUI表格(uitable)的增删操作

MATLAB GUI表格(uitable)的增删操作这几天,查看了很多的MATLABGUI表格的操作,发现都没有一个完整的增删改的帖子。于是在我自己摸索下,自己搞出来了,增删操作。接下来就分享给大家!界面布局:表格的tag:uitable1添加电价的tag:addEle删除电价的tag:delEle 首先建立一个newData.mat,用于存放表格数据: 在打开窗体的时候,加载newData.mat文件,…

大家好,又见面了,我是你们的朋友全栈君。

这几天,查看了很多的MATLAB GUI 表格的操作,发现都没有一个完整的增删改的帖子。于是在我自己摸索下,自己搞出来了,增删操作。接下来就分享给大家!

界面布局:

表格的tag: uitable1

添加电价的tag:addEle

删除电价的tag:delEle

MATLAB GUI表格(uitable)的增删操作

 首先建立一个 newData.mat,用于存放表格数据:

MATLAB GUI表格(uitable)的增删操作

 在打开窗体的时候,加载 newData.mat 文件,并且显示:

MATLAB GUI表格(uitable)的增删操作

 添加数据,我是通过 对话框来实现的:

MATLAB GUI表格(uitable)的增删操作

代码:

MATLAB GUI表格(uitable)的增删操作

增加功能就完成了。接下来是删除功能:

1.删除功能,需要用到 表格的一个回调函数 CellSelectionCallback:

MATLAB GUI表格(uitable)的增删操作

2.删除功能;

MATLAB GUI表格(uitable)的增删操作

全部代码:

function varargout = demo(varargin)
% DEMO MATLAB code for demo.fig
%      DEMO, by itself, creates a new DEMO or raises the existing
%      singleton*.
%
%      H = DEMO returns the handle to a new DEMO or the handle to
%      the existing singleton*.
%
%      DEMO('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in DEMO.M with the given input arguments.
%
%      DEMO('Property','Value',...) creates a new DEMO or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before demo_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to demo_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help demo

% Last Modified by GUIDE v2.5 23-Sep-2018 10:31:19

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @demo_OpeningFcn, ...
                   'gui_OutputFcn',  @demo_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before demo is made visible.
function demo_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to demo (see VARARGIN)

% Choose default command line output for demo
%********代码编写***********


load('newData.mat');
set(handles.uitable1,'Data',newData);


%**************************************************
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes demo wait for user response (see UIRESUME)
% uiwait(handles.figure1);


function uitable1_CreateFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;
guidata(hObject, handles);


% --- Outputs from this function are returned to the command line.
function varargout = demo_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in addEle.
function addEle_Callback(hObject, eventdata, handles)
% hObject    handle to addEle (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
%***********代码编写****************
%点击 增加后弹出 对话框
prompt ={'时间段','买电(元/KWh)','卖电(元/KWh)'}; %对话框内容提示
title = '请输入数据';    %对话框标题
lines = [1,1,1]; %设置输入框行数
def = { '正常','1.2','0.5'}; %默认值
tab = inputdlg(prompt,title,lines,def);  %对话框设置
newrow1 = tab{1};  %对话框第一行内容
newrow2 = str2num(tab{2}); %对话框第二行内容
newrow3 = str2num(tab{3}); %对话框第三行内容
newArray = {newrow1, newrow2, newrow3}; %保存在新的矩阵中
oldData = get(handles.uitable1,'Data') %保存原来的数据
newData = [oldData;newArray];  %新的数据源
set(handles.uitable1,'Data',newData);  %显示到表格中
%handles.tabale = newData;
save('newData.mat','newData'); %把数据永久性保存,方便下次使用





% --- Executes on button press in delEle.
function delEle_Callback(hObject, eventdata, handles)
% hObject    handle to delEle (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
%arr=get(handles.uitable1,'Data')
hangIndex = handles.hangIndex;  %获取选择以后传入的 行索引
newData = get(handles.uitable1,'Data');  %获取表格数据矩阵
newData(hangIndex,:) = [];   %删除选中的某行数据
set(handles.uitable1,'Data',newData);  %显示到表格中
save('newData.mat','newData');  %删除以后,保存一次数据


% --- Executes when selected cell(s) is changed in uitable1.
function uitable1_CellSelectionCallback(hObject, eventdata, handles)
% hObject    handle to uitable1 (see GCBO)
% eventdata  structure with the following fields (see MATLAB.UI.CONTROL.TABLE)
%	Indices: row and column indices of the cell(s) currently selecteds
% handles    structure with handles and user data (see GUIDATA)
newData = get(hObject,'Data'); %获取数据矩阵
hang = eventdata.Indices;  %获取行索引
hangIndex = hang(1);  %行索引赋值
handles.hangIndex = hangIndex;  %把行索引添加到结构体
guidata(hObject, handles);  %更新结构体





 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136639.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PS图像去色_css图片透明度

    PS图像去色_css图片透明度css图片去色处理html,body{-webkit-filter:grayscale(100%);-moz-filter:grayscale(100%);-ms-filter:grayscale(100%);-o-filter:grayscale(100%);filter:grayscale(100%);filter:gray;}

    2022年10月5日
    2
  • 关于我在黑马程序员培训毕业后的亲身体验

    关于我在黑马程序员培训毕业后的亲身体验首先申明:我本人已经于2016年5月份在广州传智播客java培训完毕业,和黑马程序员官网没有任何的利益往来,也没有人出钱给我帮他们做软文推广,这是我在黑马程序员的亲身体验,不存在虚构。

    2022年7月7日
    38
  • 如何零基础自学java_Java零基础的自学经验

    如何零基础自学java_Java零基础的自学经验Java零基础的自学经验学习Java数学不好行不行?要到能自己开发小软件的水平要多久,入门需要看些什么材料啊,网上资料不是很好,培训又要花钱,新手零基础如何自学Java比较快速?下面是小编为大家整理的Java零基础自学经验,喜欢的可以收藏一下!下面分享新新人类的自学经验之谈:我学了2周了,已经入门了,基本代码都能看懂,看不懂的研究研究也就懂了。重点是要学好概念,概念搞清楚了,再找各种代码来练习,找…

    2022年6月20日
    33
  • JAVA设计模式初探之适配器模式

    1. 概述  将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。2. 解决的问题  即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。      下面是两个非常形象的例子             3. 模式中的角色  3.1 目标接口(Target):客户所期待的接

    2022年3月11日
    48
  • 查看服务器硬件配置信息命令_服务器硬件参数

    查看服务器硬件配置信息命令_服务器硬件参数本次由于需要搭建一套环境,但是所需硬件配置不足,需要进行统计采购。那么就需要得知服务器现有配置,所以这次会介绍些常用的命令和工具来查询硬件信息。其实也可以通过像DELL厂商的IDRAC控制台来获取这些

    2022年8月2日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号