Matlab 纯代码进行GUI界面编程

       Matlab界面编程传统的有guide,现在matlab朝着appdesigner方向发展。这两种方法都是非常简单适合新手的,如果是一个未接触这方面的,我建议直接学APPdesigner,如果想了解更深入,可以尝试利用纯代码进行编程。 

编程要点:

     1.  需知道具体所需控件的名称;

     2.  需要理解相对应控件的属性;

     我就直接放大招,下图是是界面效果

%==================================说明====================================
%   遥感数据处理软件(待开发)
%   软件作用:处理遥感数据
%
%   作者:胡礼珍
%   单位:厦门大学联合遥感接收站
%   邮件:hulizhen@xmu.edu.cn
%
% Hf            图像句柄
% Hm1           1级菜单句柄
% Hm2           2级菜单句柄
% Hm3           3级菜单句柄
%==========================================================================
%% 清除
clear;close all;clc;
%%

%% 图形窗口
Hf = figure('Name','Dream It Possible',...     % 属性:名字
    'NumberTitle','off',...                         % 属性;去除figure编号
    'Units','normalized',...                        % 属性:大小归一化
    'MenuBar','none',...                            % 属性:去掉默认菜单栏
    'Color',[238 106 80]/255,...                    % 属性:背景色
    'NextPlot','add',...
    'OuterPosition',[0.3 0.2 0.4 0.6]);             % 属性:界面位置和大小

%% 新建菜单栏
% =======================创建自定义菜单对象01(文件)=======================
Hm1.Mn01 = uimenu(Hf,...
    'label','文件(&F)');                            % 属性:标签文件
    Hm2.Sm11 = uimenu(Hm1.Mn01,'label','打开',...
        'Callback',@Sm11_Callback);
    Hm2.Sm12 = uimenu(Hm1.Mn01,'label','保存');

% =======================创建自定义菜单对象02(读取)=======================
Hm1.Mn02 = uimenu(Hf,...
    'label','读取(&R)');                            % 属性:标签读取
    Hm2.Sm21 = uimenu(Hm1.Mn02,...
        'label','SAR传感器'); % 属性;
        Hm3.Sm211 = uimenu(Hm2.Sm21,...
            'Callback',@Sm211_Callback,...
            'label','海丝一号');                    % 属性;
        Hm3.Sm212 = uimenu(Hm2.Sm21,...
            'label','Sentinel-1');                  % 属性;
    Hm2.Sm22 = uimenu(Hm1.Mn02,...
        'label','光学传感器');                      % 属性;
        Hm3.Sm221 = uimenu(Hm2.Sm22,...
            'label','海丝二号');                    % 属性;
        Hm3.Sm222 = uimenu(Hm2.Sm22,...
            'label','Sentinel-2');                  % 属性;

% =======================创建自定义菜单对象03(SAR)========================
Hm1.Mn03 = uimenu(Hf,...
    'label','SAR(&S)');                 % 属性:标签文件
    Hm2.Sm31 = uimenu(Hm1.Mn03,...
        'label','基本处理');                        % 属性:
        Hm3.Sm311 = uimenu(Hm2.Sm31,...
            'label','多视');                        % 属性:
        Hm3.Sm312 = uimenu(Hm2.Sm31,...
            'label','滤波');
        Hm3.Sm313 = uimenu(Hm2.Sm31,...
            'Callback',@Sm313_Callback,...
            'label','伪彩色处理');
        
    Hm2.Sm32 = uimenu(Hm1.Mn03,...
        'label','反演');                            % 属性:
        Hm3.Sm321 = uimenu(Hm2.Sm32,...
            'label','风速');                        % 属性:
        Hm3.Sm322 = uimenu(Hm2.Sm32,...
            'label','海浪');                        % 属性:
        Hm3.Sm323 = uimenu(Hm2.Sm32,...
            'label','内波');                        % 属性:
        Hm3.Sm324 = uimenu(Hm2.Sm32,...
            'label','待定……');                    % 属性:
    Hm2.Sm33 = uimenu(Hm1.Mn03,...
        'label','提取');                            % 属性:
        Hm3.Sm331 = uimenu(Hm2.Sm33,...
            'label','水体');                        % 属性:
        Hm3.Sm332 = uimenu(Hm2.Sm33,...
            'label','溢油');                        % 属性:
        Hm3.Sm333 = uimenu(Hm2.Sm33,...
            'label','船只');                        % 属性:
        Hm3.Sm334 = uimenu(Hm2.Sm33,...
            'label','待补充');                      % 属性:
    Hm2.Sm34 = uimenu(Hm1.Mn03,...
        'label','干涉');                            % 属性:
        Hm3.Sm341 = uimenu(Hm2.Sm34,...
            'label','DEM');                         % 属性:
        Hm3.Sm342 = uimenu(Hm2.Sm34,...
            'label','DInSAR');                      % 属性:
        Hm3.Sm343 = uimenu(Hm2.Sm34,...
            'label','PSInsAR');                     % 属性:
        Hm3.Sm344 = uimenu(Hm2.Sm34,...
            'label','SBASInSAR');                   % 属性:
% =======================创建自定义菜单对象04(光学)=======================
Hm1.Mn04 = uimenu(Hf,...
    'label','光学(&O)');                            % 属性:标签文件
    Hm2.Sm41 = uimenu(Hm1.Mn04,'label','基本处理');
        Hm3.Sm411 = uimenu(Hm2.Sm41,'label','滤波');
        Hm3.Sm412 = uimenu(Hm2.Sm41,'label','去云处理');
% =======================创建自定义菜单对象05(工具)=======================
Hm1.Mn05 = uimenu(Hf,...
    'label','工具(&T)');                            % 属性:标签文件
    Hm2.Sm51 = uimenu(Hm1.Mn05,...
        'label','自动生成报表');                    % 属性:

% =======================创建自定义菜单对象06(帮助)=======================
Hm1.Mn06 = uimenu(Hf,...
    'label','帮助(&H)');                            % 属性:标签文件
    Hm2.Sm61 = uimenu(Hm1.Mn06,'label','联系',...
        'Checked','Off','Callback', {@Sm61_Callback});
    Hm2.Sm62 = uimenu(Hm1.Mn06,'label','日志');

        这里面还有几个问题尚未解决:

                1. Logo问题:就目前我知道用JavaFrame可以实现,但这种方法,matlab将来不再支持,可能会取消这个;

                2. 数据之间传递: 不同figure数据传递,这个想用纯代码实现,没时间研究;

                3.专业问题:干涉处理没有相关的插件、工具包;

                4. 成像显示问题:成像效果,不如IDL语言、PS、ENVI、Arcgis软件,想放大那种长条形的的大型图片,matlab只是放大某一区域,好的显示效果应该是是先将整个图放大,直到填充满整个成像区域,然后在放大图片;

        以上问题是我技能欠缺,各位有解决方法,还望告知!

        本程序至是纯利用代码进行GUI界面编程,具体对应菜单调用的函数文件我就不公开了,粉丝们可以根据自己需求进行修改;

        觉得有用就点个赞支持一下;

转载请说明出处!

路漫漫其修远兮,吾将上下而求索。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心网千结

若有所帮助,请点赞支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值