• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

Matlab gui教程0x8–自定义GUI背景图案和按钮图标

Matlab admin 2年前 (2016-11-08) 1000次浏览 0个评论 扫描二维码

美化您的 GUI 外观,会使用您的 GUI 程序更加吸引大家的视线!特别是对商业程序,终端用户可能会很注重程序的界面布局(当然功能必须首先达标),爱美之心人皆有之,这个不需要我解释吧!

在本节教程我将想大家显示,如何为您的 GUI 添加一个漂亮背景,以及为一些按钮(不是所有的控件都可以)添加图标!

其实原理很简单,大家不妨先了解下:

1.背景,其实就是将图片显示在 axes,而 axes 覆盖整个 GUI
2.图标,其实将控件的Cdata 属性设置为一个真彩色图形数据

先预览我们成果吧,如果您感兴趣可以继续,不感兴趣可以到其它帖子溜达下哦。

一、为 GUI 穿上漂亮的外衣

本部分我们将学习如何为 GUI 添加一个您希望的背景图片。

1、首先请下载我们为您准备好的程序 background-image.zip (26.26 KB, 下载次数: 1567) ,解压到MATLAB工作目录,然后在 GUIDE 中打开 customImage.fig,布局如下所示

什么?GUIDE 在哪里,偶没有用过 GUI!那请先看看这个吧http://www.matlabsky.com/thread-5217-1-1.html

2、细心的网友会发现,背景图像和 GUI 的大小不一致呀。两者大小不一致,会导致最终的 GUI 相当难看,所有首先我确保两者的尺寸合适且匹配。

在本实例中我们将调整 GUI 的尺寸来适应图片的大小,背景是 448×336 图片,单位为像素。

2.1 双击 GUI 的 figure(窗体),在跳出的属性查看器中将 Units 设置为 pixels(像素)

2.2 将 Position 属性的 Width 和 Height 分别设置为 448 和 336

3、接下来添加一个坐标系,将 Tag 设置为 axes1

由于 Matlab 中没法直接添加背景,而需要借助坐标系这个容器,再将背景显示在坐标系上,其实说白了这就是以假乱真。注意 axes 必须覆盖整个 figure 窗体,否则就露馅了!

4、点击 GUIDE 工具栏的 按钮,编辑对应的 M 文件。在 customImage_OpeningFcn 下面添加如下代码

  1. % **_OpeningFcn 函数是 GUI 在打开时的执行的命令,此时 GUI 界面还没有显示出来
  2. % 将背景图像载入 Matlab
  3. % 如果图像不在当前目录,必须使用完整路径
  4. backgroundImage = importdata(‘sunset-beach.jpg’);
  5. % 选择坐标系
  6. axes(handles.axes1);
  7. % 将图片添加到坐标系中,于是就成了背景了
  8. image(backgroundImage);
  9. % 将坐标系的坐标轴标签去掉
  10. axis off

复制代码

二、为按钮添加可爱的图标

大家都注意到了,大部分软件的工具栏都是图标的,而不是单纯的文字,因为图标形象直观。

需要注意的是 GUI 中只有 pushbutton、togglebutton 以及工具栏按钮才可以添加图标,其它控件都是无效的。

1、在上面得到的 GUI 中,我们继续在 figure 上添加一个 pushbutton,设置 Tag 为 pushbutton1

2、修改 pushbutton1 的 Units 属性为 pixels

将 position 属性的 width 和 height 分别设置为 65 和 65

3、打开对应的 M 文件,定位到 customImage_OpeningFcn,在下面添加

  1. %import the smiley image into matlab
  2. %if image is not in the same directory as the GUI files, you must use the
  3. %full path name of the image file
  4. smiley = importdata(‘smiley.jpg’);
  5. %set the smiley image as the button background
  6. set(handles.pushbutton1,’CDATA’,smiley);

复制代码

4、运行整个 GUI 程序,效果如下图所示


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Matlab gui 教程 0x8–自定义 GUI 背景图案和按钮图标
喜欢 (0)
admin
关于作者:

您必须 登录 才能发表评论!