Matlab GUI编程技巧(三):把figure文件显示到GUI的axe上
在matlab的GUI编程中,把figure的图像显示到GUI的axe上是非常重要的的,GUI编程下的图像显示非常常见。matlab GUI默认菜单的保存图像默认为保存全部GUI,其中包括使用" 菜单->编辑->复制图形"。
那如何把matlab的fig文件显示到GUI 的axe上?下面进行一一分析,首先介绍图像的句柄,如下:
图像(figure)的句柄
设置图像句柄如下:
figure_handler = figure; % 建立一个默认图像,并将图像的句柄返回至handler中
如果想对建立figure进行操作,只需要改变handler的属性值即可,如下设置:
figure_handler = figure('name', 'example', 'numbertitle', 'off');
通过上面语句建立的图像,关闭了数字标题,并把图像名设置为example,那么新建的图像在标题栏就只会显示example了。
figure属性包含如下:
WindowKeyPressFcn
:图像窗口键盘按下回调函数,当图像窗口被设置为当前窗口时,按下键盘上的键时调用该函数name
:图像名,也是窗口名,值为字符串units
:图像中位置等信息的衡量单位,常用值为’normalized’(归一化值)以及’pixel’(像素)position
:按钮在图像中的位置,4维向量,[左起始点,下起始点,宽度,高度]numbertitle
:显示在窗口栏的数字标题,这里没用,设置为’off’或’on’resize
:标识窗口是否能被用户重新定义大小,设置为’off’或’on’menubar
:图像的菜单栏,可以是菜单栏句柄,也可以为’none’或’fiure’,'none’表示无菜单栏,'figure’为默认绘图窗口的菜单栏toolbar
:图像的工具栏,可以是工具栏句柄,也可以为’none’或’fiure’,'none’表示无工具栏,'figure’为默认绘图窗口的工具栏
set和get函数
set函数
的作用是设置句柄的属性值,set函数的调用格式为:
set(句柄,属性名1,属性值1,属性名2,属性值2,…)
原型如下
set(figure_handler, 'property1', value1, 'property2', value2)
如果想要改变建立的图像的鼠标,那么只需要执行如下语句即可
set(figure_handler, 'pointer', 'cross');
把鼠标移动到建立的图像上,观察下鼠标,会发现不同。如果想知道更多种类,在帮助文档中查找 figure properties。
例如:
set(gca,'xtick',X,'ytick',Y) %设置网格的显示格式,gca获取当前figure的句柄
get函数
的作用是获取句柄的属性值,原型如下
value = ge(figure_handler, 'property');
a=get(0,'FactoryObjectTypePropertyName1','FactoryObjectTypePropertyName2',...)
返回指定对象类型指定的属性值,输入参数FactoryObjectTypePropertyName为一个关键词,由字符Factory与图形对象类型(如Figure)还有属性名称(如Color)组成。
按钮建立:uicontrol函数
按钮通过函数uicontrol来建立,调用方式如下:
button_handler = uicontrol(figure_handler, 'style', 'pushbutton');
fiugre_handler
作为按钮的父句柄,那么这个按钮的句柄是图像的子柄。style
定义风格,这里是’pushbutton’。
建立时可以同时定义其他属性,按钮的属性值如下,
units
:图像中位置等信息的衡量单位,常用值为’normalized’(归一化值)以及’pixel’(像素)position
:按钮在图像中的位置,4维向量,[左起始点,下起始点,宽度,高度]string
:显示在按钮上的字符串fontsize
:有字符当然有字体大小了callback
:回调函数,当按钮被按下时执行的函数
对应方法
- 如果那个Figure的图形也是这个GUI产生的,那么可以尝试直接在那个AXES上画,也就是在画图之前,用axes命令把目标AXES设成当前axes。然后再画图。
- 如果无法控制那个Figure,那么可以使用copyobj命令把该Figure上的内容全部拷贝到目标AXES上。
函数getframe()是为了获取坐标轴中的一帧图像,其返回的对象中有cdata和colormap两个成员。
[FileName,PathName] = uiputfile({'*.jpg','JPEG(*.jpg)';...'*.bmp','Bitmap(*.bmp)';...'*.gif','GIF(*.gif)';...'*.*', 'All Files (*.*)'},...'Save Picture','Untitled');
if FileName==0disp('保存失败');return;
elseh=getframe(picture);%picture是GUI界面绘图的坐标系句柄imwrite(h.cdata,[PathName,FileName]);
end
new_f_handle=figure('visible','off');
new_axes=copyobj(handles.axes,new_f_handle); %axes1是GUI界面绘图的坐标系
set(new_axes,'units','default','position','default');
[filename,pathname fileindex]=uiputfile({'*.jpg';'*.bmp'},'save picture as');
if ~filenamereturn
elsefile=strcat(pathname,filename);switch fileindex %根据不同的选择保存为不同的类型case 1print(new_f_handle,'-djpeg',file);case 2print(new_f_handle,'-dbmp',file);end
end
delete(new_f_handle);
Matlab GUI编程技巧(三):把figure文件显示到GUI的axe上相关推荐
- Matlab GUI编程技巧(一):如何使gui编的界面一运行就居中
有些时候在进行MATLAB GUI可视化界面编写时,需要将界面在运行时就处于居中状态.以下总结了两种方法: 方法一 假如当前的figure的句柄是h,则在程序运行的刚开始,用以下命令: set(h,' ...
- Matlab GUI编程技巧(六):从一个GUI界面跳转到另一个GUI界面以及GUI窗口间数据传递
- MATLAB高效编程技巧与应用:25个案例分析
MATLAB高效编程技巧与应用:25个案例分析 第1章 MATLAB快速入门 MATLAB给qq邮箱发邮件 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个 ...
- LabVIEW与MATLAB联合编程之使用dll库文件连接
LabVIEW与MATLAB联合编程之使用dll库文件连接 最近做东西的时候用到了在LabVIEW里面调用MATLAB的分类模型,辗转多篇文章终于搞定,特此记录,以供参考. 编程环境:Windows1 ...
- MATLAB使用教程(三)——在文件中编程
1.把matlab编码调整为utf-8编码 首先,删除这个部分(一定先备份这个lcdata.xml文件,备份就是拷贝一个副本),我的是2016版,大概在这里,你们可以搜索以下: 然后,找到这个部分,增 ...
- matlab编程实际应用,MATLAB高效编程技巧与应用:25个案例分析
第一部分 高效编程技巧 第1章 MATLAB快速入门 1.1 熟悉MATLAB环境 1.1.1 MATLAB的启动 1.1.2 MATLAB desktop 1.1.3 MATLAB 程序编辑器(Ed ...
- ftp服务器上图片文件显示不出来,ftp服务器上图片文件显示
ftp服务器上图片文件显示 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分别安装 ...
- Matlab GUI编程技巧(十):ui figure函数创建可视化图窗
- Matlab编程技巧:导入A2L文件
本文研究如何通过Matlab脚本导入A2L文件,并将A2L文件的一些信息写入表格中. 文章目录 1 A2L文件 2 A2L文件的解析 3 将A2L信息导入表格 3.1 A2L中的变量信息 3.2 Ma ...
最新文章
- python可视化文本分析(2)—snownlp jieba分析QQ群成员发言情况
- SHELL相关的特殊字符总结
- .NET Core:新的快速开发平台
- POJ3585-Accumulation Degree【树形dp,二次扫描与换根法】
- [你必须知道的.NET]第十六回:深入浅出关键字---using全接触
- 动态调用动态库方法 .so
- Apache Benchmark(简称ab)压力测试安装与解释
- Hibernate 主清单文件配制说明
- 解决ray报错AttributeError: module ‘aioredis‘ has no attribute ‘create_redis_pool‘
- c语言中open函数r,C语言中open函数
- paip.lucene 4.3 中文语义搜索最佳实践
- Python之旅Day14 JQuery部分
- B站(云e办)SpringBoot实战练习的Sql文件、前端Vue源码、后端springboot源码
- Keil 5下载安装教程以及使用教程
- xbox 手柄按键测试软件,unity中链接Xbox手柄设置及按键检测
- 网络处理中TLV形式的不固定格式匹配
- EasyWechat微信支付jsapi缺少参数 total_fee
- ES5和ES6的类,静态方法,继承实现代码
- 2021年中国海上风电行业发展现状分析,双碳循环下行业飞速发展「图」
- Scala List操作笔记 --备忘(9.9总结)
热门文章
- 3D MAX 人物骨骼建设
- Python中列表的一些常见操作
- 2021云栖大会:阿里云自研技术大爆发,连发多款重磅产品
- python英雄联盟登录程序,注册用户程序
- Flowable入门系列文章41 - 网关 03
- standard_init_linux.go:211: exec user process caused “exec format error“
- 2019年9月3日安卓凯立德全分辨率(路况)夏季版C3551-C7M24-3K21J25懒人包
- 键盘上的双引号变成@了
- Sage X3 ERP-PJM结构分解
- 8.旭日图+热力地图