Matlab简易GUI界面

运行命令guide,打开GUI界面编辑器,通过左侧选项添加各种界面组件,如按钮、文本框等,双击组件弹出组件属性编辑框,可以定义按钮等文本内容、字号、颜色以及回调函数等。

对于按钮的点击所触发的回调函数,双击按钮属性编辑框的callback选项,自动弹出组件的回调函数,可以编写如文件夹路径选择,显示文件路径等功能。

其中关于界面组件的传参,比如静态文本的字符串传参,可以用以下命令完成

set(handles.text9,'string',pathName,'fontsize',15);
pathName = get(handles.text9,'string');

其中要注意变量是字符形式,有时可能需要进行转换,其它的如按钮、编辑文本框等可类似操作,handles是界面句柄,通过handles.(...)可以调用界面下的组件。而且需要注意,在执行循环时动态显示文本,有时可能会发现只显示最后循环结束时的文本,中间过程时不会动态显示,这时只需要加上pause(0)即可刷新。

pat1='(?<=/)[0-9]{1,2}(?=/)';
pat2='(?<=/)[0-9]{1,2}(?!/)';
处理带有'/'的日期的正则表达式,(?=)为正向肯定预查,(?<=)为反向肯定预查,(?!)为正向否定预查,(?<!)为反向否定预查。

以下是文件夹选择功能的实现,选定了文件后返回的文件路径是元胞格式,用xlsread命令读取时需要写成pathname{:}才可运行。

function [pathname] = gui2(start_path, dialog_title)
% uigetdir2
% Pick multiple directories and/or files
import javax.swing.JFileChooser;
if nargin == 0 || start_path == '' || start_path == 0 % Allow a null argument.
    start_path = pwd;
end
jchooser = javaObjectEDT('javax.swing.JFileChooser', start_path);
jchooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
if nargin > 1
    jchooser.setDialogTitle(dialog_title);
end
jchooser.setMultiSelectionEnabled(true);
status = jchooser.showOpenDialog([]);
if status == JFileChooser.APPROVE_OPTION
    jFile = jchooser.getSelectedFiles();
pathname{size(jFile, 1)}=[];
    for i=1:size(jFile, 1)
pathname{i} = char(jFile(i).getAbsolutePath);
end
elseif status == JFileChooser.CANCEL_OPTION
    pathname = [];
else
    error('Error occured while picking file.');
end




 


一个不错的Matlabgui界面设计实例 精美日历 function CalendarTable; % calendar 日历 % Example: % CalendarTable; S=datestr(now); [y,m,d]=datevec(S); % d is day % m is month % y is year DD={'Sun','Mon','Tue','Wed','Thu','Fri','Sat'}; close all figure; for k=1:7; uicontrol(gcf,'style','text',... 'unit','normalized','position',[0.02+k*0.1,0.55,0.08,0.06],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor','b',... 'String',DD(k),'fontsize',16,'fontname','times new roman'); end h=1; ss='b'; qq=eomday(y,m); for k=1:qq; n=datenum(y,m,k); [da,w] = weekday(n); if k==d; ss='r'; end uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.02+da*0.1,0.55-h*0.08,0.08,0.06],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',ss,... 'String',num2str(k)); ss='b'; if da==7; h=h+1; end end uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.6,0.66,0.12,0.08],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',ss,... 'String','clock','fontsize',18,'fontname','times new roman'); Tq=uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.74,0.66,0.17,0.08],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',[0.1,0.9,0.9],... 'fontsize',18,'fontname','times new roman'); sq='The calendar'; uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.14,0.86,0.37,0.08],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',[0.1,0.9,0.9],... 'fontsize',18,'fontname','times new roman','string',sq); try while 1 set(Tq,'String',datestr(now,13)); pause(1); end end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值