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


相关推荐

  • qt无法解析的外部符号lnk2019_2019最新驾考宝典

    qt无法解析的外部符号lnk2019_2019最新驾考宝典在编译工程的时候经常会碰到”LNK2019:无法解析的外部符号… “的报错。一般来说,碰到这个错误有一下几种情况:1、头文件中声明了函数或者类型,但是没有相关的实现源文件解决:在编译结果中找到并定位该函数,删去多余的定义并对未实现的定义进行实现;注意删去Debug和Release文件夹,并重新构建。2、调用了第三方库,但是未链接成功解决:重新添加库的.lib和.dll及相关.h文

    2022年10月5日
    0
  • 《周易》中的人生智慧_感悟人生的句子 励志

    《周易》中的人生智慧_感悟人生的句子 励志1.君子藏器于身,待时而动。——《易传·系辞传下》解释:君子蕴藏着弘大的才华在身上,等待时机的来临,而有所动。2.二人同心,其利断金。同心之言,其臭(xiu)如兰。——《易传·系辞传上》解释:二人同心,其锋利程度足以切断坚硬的金属。同心同德,精诚团结,心意齐同的人在一起谈话,给人的感觉就像嗅到芬芳的兰花香味一般。3.天行健;君子以自强不息。——《易传·象传上》解释:天道运行周而复始,永…

    2022年8月18日
    3
  • touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event使用

    touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event使用iOSProgramming–触摸事件处理(2)        在上一篇《iOSProgramming–触摸事件处理(1)》中了解触摸、事件和响应者之后,接下去学习如何处理用户的触摸事件。首先触摸的对象是视图,而视图的类UIView继承了UIRespnder类,但是要对事件作出处理,还需要重写UIResponder类中定义的事件处理函数。根据不通的触摸状态,程序会调用相应的处理

    2022年7月25日
    5
  • android触摸屏事件,Android Touch事件分析

    android触摸屏事件,Android Touch事件分析AndroidTouch事件分析本文将分析Touch事件的传递。很多复杂的功能都需要深刻的处理Touch事件,例如侧边栏,例如图标的拖动换位。一,Touch事件的执行轨迹Down—>MoveàUP/Cancel二,Touch事件的分类Touch事件可分为两类:OnTouchEvent和onInterceptTouchEvent。消息传递的两种方式(Z轴方向)前者是正在执行touch事件的…

    2022年9月3日
    3
  • linux任务管理器_redhat和centos的区别

    linux任务管理器_redhat和centos的区别本文将向你介绍RedFlagDesktopLinux10(红旗Linux10)的新功能及新特性,让你对RedFlag的桌面版创新有一个了解,以下介绍6点和其他Linux发行版有着与众不同的地方。想获取该版本请看想要红旗桌面操作系统10(RedFlagDesktopLinux10)的请联系红旗官方一文。红旗Linux10的新功能/新特性介绍1、全新的UI设计全新的图标集和彩色表情包让用…

    2022年8月20日
    3
  • hdu 4870 Rating

    hdu 4870 Rating

    2022年1月12日
    35

发表回复

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

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