当前位置:服务支持 >  软件文章 >  一个实用的GUI编程模型案例分享

一个实用的GUI编程模型案例分享

阅读数 4
点赞 0
article_banner
Matlab的GUI编程我们可以用两种方式实现,一是自己用代码构建界面,二是借助GUI设计工具。
第一种方法完全用代码设计界面比较麻烦,第二种方法属于所见即所得模式,比较直观方便,我比较喜欢用后者。后者除了生成一个fig文件外,同时会生成一个m文件,用以编写响应代码。虽然生成的代码带来了一些方便之处,有些类似于VC中的MFC,但是我却觉得太过复杂,而且来龙去脉也不甚清楚。我喜欢所有的代码都在自己的掌握之中,于是摈弃了matlab自己生成的代码,自己编写了一个GUI的模型,用起来还是比较方便的。
function Output = GUIModel(Input)
% GUI 程序模版
% 作者: SCIE
% 创建: 2007.04.29
% 修改: 2007.04.29
if nargin == 0
Input = [0, 0];
end
% 生成主界面
[hFig, handles] = InitGUI(Input);
% 获取界面句柄,初始化数据,并保存
handles = InitData(handles, Input);
guidata(hFig, handles);
% 等待用户操作
uiwait(hFig);
% 获取需要返回的数据
if nargout == 1
handles = guidata(hFig);
Output = handles.Output;
end
% 关闭主界面
delete(hFig);
% 初始化程序界面
function [hFig, handles] = InitGUI(Input)
% 打开主窗口-Fig 文件(在设计界面时必须将各控件的默认 CallBack 值都去掉)
% 各控件的 Tag 值设置:
% 主窗口:MainFigure
% 文本框:edtNum1, edtNum2, edtResult
% 按钮: btnCalc, btnExit
hFig = openfig(mfilename);
handles = guihandles(hFig);
set(hFig, 'Units', 'normalized', 'Position', [0.35 0.5 0.3 0.2]);
% 设置控件的初始值
set(handles.edtNum1, 'String', num2str(Input(1)));
set(handles.edtNum2, 'String', num2str(Input(2)));
% 设置回调函数
set(hFig, 'CloseRequestFcn', @CloseRequestFcn);
set(handles.btnCalc, 'CallBack', @btnCalc_CallBack);
set(handles.btnExit, 'CallBack', @btnExit_CallBack);
% 设置存储到 handles 中的数据
function ret_handles = InitData(handles, Input)
ret_handles = handles;
ret_handles.Input = Input;
ret_handles.Output = [];
% 关闭按钮的响应函数
function CloseRequestFcn(hObject, EventData)
uiresume(hObject);
% 计算按钮的回调函数
function btnCalc_CallBack(hObject, EventData)
% 获取控件句柄
handles = guidata(hObject);
% 获取数据进行计算并显示计算结果
num1 = str2num(get(handles.edtNum1, 'String'));
num2 = str2num(get(handles.edtNum2, 'String'));
result = num1 + num2;
set(handles.edtResult, 'String', num2str(result));
% 保存输出结果
handles.Output = result;
guidata(hObject, handles);
% 退出按钮的回调函数
function btnExit_CallBack(hObject, EventData)
handles = guidata(hObject);
uiresume(handles.MainFigure);


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空