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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JPS算法_系统结构是什么

    JPS算法_系统结构是什么在A*算法的基础上,推导JPS算法的规则、特点

    2022年9月20日
    1
  • 动态路由协议及分类

    动态路由协议及分类3 动态路由协议及分类前面已经为大家介绍了路由器对于直连路由的发现过程 以及静态路由的概念和部署要点 对于一个小型网络 静态路由或许已经能够满足需求 但是在大中型网络中 由于网段数量特别多 网络拓扑复杂等原因 仅仅使用静态路由来实现数据互通显然是不太现实的 配置及维护工作量都太大 再者静态路由无法动态地响应网络拓扑变更 此时就需要考虑另一种方案 动态路由协议 DynamicRouti 了 当我们在路由器上激活了动态路由协议后 就相当于激活了路由器的某种能力 路由器之间就

    2025年7月20日
    0
  • java io 试题_Java IO流面试题

    java io 试题_Java IO流面试题字节流与字符流的不同是他们的处理方式,字节流是最基本的,采用ASCII编码。但是实际上很多数据是文本,所以提出字符流的概念,采用unicode编码两者之间通过inputStreamReader与outputStreamWriter来关联,实际上是通过byte[]与String来关联字节流输出:程序–>字节流–>文件字符流输出:程序–>字符流–>缓冲–>文件程序中所有…

    2022年4月25日
    26
  • 怎么新建pytest的ini文件_python读取ini配置文件

    怎么新建pytest的ini文件_python读取ini配置文件前言pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行查看pytest.ini的配置选项pytest-h找到以下

    2022年7月29日
    3
  • 微生物组-宏基因组分析第9期(报名直播课免费参加线下2020.10本年最后一期)

    微生物组-宏基因组分析第9期(报名直播课免费参加线下2020.10本年最后一期)福利公告:为了响应学员的学习需求,经过易生信培训团队的讨论筹备,现决定安排扩增子16S分析、宏基因组、Python课程和转录组的线上直播课。报名参加线上直播课的老师可在1年内选择参加同课…

    2022年5月29日
    30
  • 抓住每一次学习的机会

    抓住每一次学习的机会抓住每一次学习的机会

    2022年4月24日
    37

发表回复

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

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