MATLAB之GUI学习经典举例

1. 设置背景颜色

1.1 通过GUI按钮设置背景颜色

function backswitch_Callback(hObject, eventdata, handles)
% hObject    handle to backswitch (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
ha = axes('units','normalized','position',[0 0 1 1]);
uistack(ha, 'down')
[fname, pname, index] = uigetfile({'*.jpg; *.bmp'},'选择背景图片');  
if  index
    II = imread([pname,fname]);
    image(II)
    colormap gray
    set(ha,'handlevisibility','off','visible','off');
else
    errordlg('选择背景失败');       %提示错误对话框
    hDialog = findall(0,'tag','Msgbox_Error Dialog');
    btn_ok = findall(hDialog,'style','pushbutton');
    set(btn_ok,'String','确定');    
end

1.2 通过GUI运行设置背景颜色

% --- Executes just before computesumprice is made visible.
function computesumprice_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 computesumprice (see VARARGIN)

% Choose default command line output for computesumprice
ha = axes('units','normalized','position',[0 0 1 1]);
uistack(ha, 'down') % up,down,可选
II = imread('1.jpg');
image(II)
colormap gray
set(ha,'handlevisibility','off','visible','off');

handles.output = hObject;
% Update handles structure
guidata(hObject, handles);

2. 错误对话框

2.1 “截屏失败”举例

% --- Executes on button press in screencapture.
function screencapture_Callback(hObject, eventdata, handles)
% hObject    handle to screencapture (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
[fname, ~, index] = uiputfile({'*.jpg'});  
if  index
     a = getframe(computesumprice);%注意不是gcf
     imwrite(a.cdata,fname);  
else
    errordlg('导出失败');       %提示错误对话框
    hDialog = findall(0,'tag','Msgbox_Error Dialog');
    btn_ok = findall(hDialog,'style','pushbutton');
    set(btn_ok,'String','确定');    
end 

3. 计算器

在这里插入图片描述

按钮callback

str_cur = get(handles.display, 'string');
str_cur_val = str2double(get(handles.display, 'string'));
current(1) = get(hObject, 'string'); 
% 判断初始化是否为0
if str_cur_val == 0
    set(handles.display,'string',current(1));
else
    set(handles.display,'string',[str_cur,current(1)]);
end

±*/ callback

str_before = get(handles.display, 'string'); 
add_str = get(handles.add, 'string'); 
set(handles.display,'string',[str_before,add_str]);

= callback

equal_sign = get(hObject,'string');%获取=
str_before = get(handles.display, 'string'); %获取display的字符
answer = eval(str_before);%MATLAB提供的eval函数,可根据字符直接计算,无需格外编写算法
set(handles.display,'string',strcat(str_before,equal_sign,num2str(answer)));

√ callback

str_before = get(handles.display, 'string'); 
square_root_str = 'sqrt'; 
leftk ='(';
rightk =')';
set(handles.display,'string',[square_root_str,leftk ,str_before,rightk]);

← callback

textString = get(handles.display,'String');
n=length(textString);
t=char(textString);
textString=t(1:n-1);
set(handles.display,'String',textString)

C callback

set(handles.display , 'string', num2str(0)); 

4. 退出

h = gcf;
close(h);

5. 选择列表框绘图

seldata = get(handles.seldata, 'value'); %seldata为列表框tag
axes(handles.axes2)

switch seldata
    case 1
         plot(t,data1)
         title('传声器1时域数据')
    case 2
         plot(t,data2)
         title('传声器2时域数据')   
    otherwise
        return
end

6. 取弹出式菜单里的值

winType = get(handles.winType, 'value');
switch winType
    case 1
        w = hanning(NFFT);
    case 2
        w = boxcar(NFFT);   
    case 3
        w = hamming(NFFT);
    otherwise
        return
end
  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值