GUIDE

属性设置

name 更改名字

logo

在GUI的“.m”文件中的OpeningFcn函数或者OutputFcn函数中添加以下代码:

% 设置页面左上角的 LogoI = imread( 'Logo.jpg' ); % Logo.jpg为指定的图标javaImage = im2java( I );newIcon = javax.swing.ImageIcon( javaImage );figFrame = get( handles.figure1, 'JavaFrame' ); % 取得Figure的JavaFramefigFrame.setFigureIcon( newIcon ); % 修改图标

本问题参考了网址:https://blog.csdn.net/hycwoaiyl/article/details/80113594

————————————————

版权声明:本文为CSDN博主「Daniel__Shi」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/shitao99/article/details/85955726

全局变量

“在函数或基本工作空间中,用global声明的变量为全局变量。”

“声明了全局变量的函数或基本工作空间,共享该全局变量,都可以给它赋值。”

“如果函数的子函数也要使用全局变量,也必须用global声明。”

“全局变量要放在函数开始处声明。”

在gui显示图像的toolbar

set( hObject, 'toolbar', 'figure' ); % 在菜单栏显示figure工具条的内容

GUI放到屏幕中央

需要选择其中一种代码,将其放置在GUI界面的XXX_OpeningFcn()函数下即可。 推荐使用前三种实现,简洁实用。

movegui( handles.figure1, 'center' ) % figure1为当前GUI界面的Tag

movegui( gcf, 'center' ); % 将GUI界面放置在桌面中央

movegui( hObject, 'center' ); % 将GUI界面放置在桌面中央

GUI的M文件

在MATLAB GUI中,数据分两种:GUI data和application data。 两种数据的存取机制是相同的,但是GUI data使用起来比较方便。

每一个GUI 图形界面都维持一个和自己的界面的图形(figure)相联系的一个handles数据结构,这个数据结构中容纳图形界面内所有控件(按钮、列表框、编辑框等)的句柄,相当于一个大的“容器”,里面存放了figure内所有控件的句柄。同时,handles结构也可以被figure内所有控件的回调函数访问,因为回调函数的输入参数中都有handles结构。此外,在控件的回调函数内可以把数据存储到handles结构中。

handles结构数据的取得和存储是通过guidata函数来实现的。

例如:在编辑框edi的回调函数内想获得t编辑框的句柄,hObject可以,也可以用handles.edit,这两个值是一样的,没有区别,只不过获得控件句柄的方式不同而已:hObject是调用回调函数时直接传过来的,handles.edit是从handles结构中取得的。但是,在控件的CreateFcn函数中如果想访问控件,必须用hObject,而不能用handles.edit,因为这时控件还没被创建,其句柄还没有加入到handles结构中。

各控件的回调函数中,hObject的值是不一样的,分别代表调用回调函数的控件的句柄,而handles结构却是一样的。这种机制便于figure内的不同控件的回调函数内传递数据。

Opening函数框架

GUI 文件执行函数的顺序是:

Opening函数−>Output函数−>回调函数Opening函数−>Output函数−>回调函数

并且,Opening 函数 、 Output 函数只执行在开始运行时执行一次。

若要根据用户的要求,输出到命令行,可以使用暂停和就行函数:uiwait,uiresumeuiwait,uiresume

具体如下

(1)添加 uiwait 到 Opening 函数中(如上,uiwait(handles.figure1);)

(2)在期望相应的回调函数中,更新 handles.output 值,并执行 uiresume。

回调函数

hObject, 当前 figure 句柄

eventdata, 附加参数,一般用不到

handles,当前 GUI 句柄,包含所有 GUI 对象的信息

  • 利用函数 get 来取得句柄中的数据值,利用 set 来改变句柄中数据的值,并利用global 在不同的控件中共享数据。
  • 设置:set(handles.控件的tag,'要设置的属性名','要设置的属性值')。比如:set(handles.edit1,'string','hello world');
  • 获取:get(handles.控件的tag,'要获取的属性名')

MATLAB GUI之ABC的更多相关文章

  1. Matlab——GUI初涉

    Matlab——GUI初涉 MATLAB GUI教学视频0:GUI中的基本操作—在线播放—优酷网,视频高清在线观看http://v.youku.com/v_show/id_XMjM2Mjk0MjM2. ...

  2. matlab GUI界面编程总结

    去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录. 从简单的例子说起吧. 创建Matlab ...

  3. 转载:关于Matlab GUI的一些经验总结

    去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录. 从简单的例子说起吧. 创建Matlab ...

  4. Matlab GUI设计中的一些常用函数

    Matlab GUI常用函数总结 % — 文件的打开.读取和关闭% — 文件的保存% — 创建一个进度条% — 在名为display的axes显示图像,然后关闭% — 把数字转化为时间格式% — ch ...

  5. Matlab GUI界面

    做SVD的时候,看学姐的demo,用到了matlab的GUI,感兴趣就自己学了一下: 从简单的例子说起吧. 创建Matlab GUI界面通常有两种方式: 1,使用 .m 文件直接动态添加控件     ...

  6. matlab GUI保存axes(坐标轴)上的图像

    1.默认方式 matlab GUI默认菜单的保存图像默认为保持全部GUI,包括使用" 菜单->编辑->复制图形". 2 保存可见区域 2.1 代码 [FileName, ...

  7. [学习一个] Matlab GUI 学习笔记 Ⅰ

    Matlab GUI 学习笔记 Ⅰ 1. Foreword Matlab 是严格意义上的编程语言吗?曾经有人告诉我他是通过 Matlab 学会了面对对象编程,我是不信的,但这依然不妨碍它在特殊领域的强 ...

  8. Matlab GUI memo

    有一段时间没写博客,一周4篇文章都坚持不下来,不知道写哪个方面的内容,写研究相关就怕论文查重查到,其他方面也没太多时间去学.还是花时间多学点其他方面.废话到此,很早就做过matlab gui相关,现在 ...

  9. Matlab GUI读入图片

    % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, han ...

随机推荐

  1. .net core3.1 abp动态菜单和动态权限(思路) (二)

    ps:本文需要先把abp的源码下载一份来下,跟着一起找实现,更容易懂 在abp中,对于权限和菜单使用静态来管理,菜单的加载是在登陆页面的地方(具体是怎么知道的,浏览器按F12,然后去sources中去 ...

  2. Dedecms 目标仿站的学习视频

    目标网站首页的初步仿制(实站仿站)http://vodcdn.video.taobao.com/player/ugc/tb_ugc_bytes_core_player_loader.swf 目标网站首 ...

  3. Sublime 配置 Markdown,并实时预览

    准备: 找到菜单栏:Preferences → Package Control → Package Control:Install Package 需要安装的插件: [Markdown Editing ...

  4. Node.js 学习笔记(二)

    express是nodejs的一个轻量级框架. express的功能很简单, 功能依赖中间件. 安装:在你的项目文件价里打开cmd窗口,在里面使用npm工具(就是在cmd里输入 npm install ...

  5. Install Centos7 on VirtualBox in mac

    Step 1:准备虚拟机及镜像 下载合适的Virtual Box版本 官方下载链接:https://www.virtualbox.org/wiki/Downloads 这里选择的版本是:https:/ ...

  6. Quartz.Net系列(三):解读Quartz.Net源码领略设计模式在其中的应用

    1.Builder(建造者)模式 JobBuilder  DateBuilder  其他的Builder(TriggerBuilder.SchedulerBuilder等) 2.抽象工厂模式 ISch ...

  7. STL sort的comp函数注意事项

    今天写了个题,结果碰巧re了,我眉头一皱发现事情并不简单. 原来我之前的comp写的都是错的. bool cmp(milkman a,milkman b) { return a.price<=b ...

  8. C++ 基于多态的职工管理系统

    职工管理系统 1.管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C++来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工.经理.老板,显示信息时,需要显示职工编 ...

  9. xenomai内核解析之双核系统调用(一)

    版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 xenomai 内核系统调用 一.32位Lin ...

  10. 【asp.net core 系列】12 数据加密算法

    0. 前言 这一篇我们将介绍一下.net core 的加密和解密.在Web应用程序中,用户的密码会使用MD5值作为密码数据存储起来.而在其他的情况下,也会使用加密和解密的功能. 常见的加密算法分为对称 ...