matlab—图形界面(GUI)程序设计

十一、图形界面(GUI)程序设计

matlab也能做应用程序,类似于c++的mfc,这点我也是才知道,大吃一惊,原来现在可视化编程应用如此广泛,连matlab都可以,接下来我就会讲解如何通过matlab进行程序设计

首先,我们在matlab的command window,也就是命令行窗口,输入guide->回车->点击“确定”

图11-1 guide

打开以后是如下图所示的界面,左边有两列”控件“,为了更直观的展示这些控件,我们点击”文件“->”预设”,我们把”在组建选项板中显示名称“前面的勾打上

图11-2 预设

图11-3 预设完成

这样,控件的名称就显示出来了

接下来我们随便拉几个控件到界面中,然后点击上面类似于”播放“的一个绿色按钮

图11-4 运行

这个时候我们的应用程序就出来了

图11-5 第一个应用程序

现在我们知道了如何运行应用程序以后,我们要先优化我们的界面,首先界面的一些控件排列并不是很整齐,我们可以在把这三个控件选择了以后,点击“工具”->”对齐对象”,这时候就会弹出一个选择器,让你选择以什么样的方式进行对齐

图11-6 对齐对象

对齐控件了以后,我们再考虑一个问题,按钮都有它各自的作用,所以我们要让他展现不同的名字,以直观的让人知道这个按钮是干什么的,所以我们需要修改控件的样式,如何操作?双击控件即可,比方说我要把第一个按钮的名称改为,按钮1,我只需要双击控件,找到它对应的属性进行修改

图11-7 修改控件属性

这里我们还要多看一个属性,叫tag,如何辨别每个控件?通过控件的名字?不对,其实每个控件都有自己特殊的“辨识码”,也可以叫id,这个id是可以改的,就在“tag”属性这一行里,知道id有什么用?后面如果我们需要某个控件实现某个功能,我们需要去指定控件,通过什么来指定?就通过它的tag的id

图11-8 tag

上面讲的都是界面的一些知识,下面我们要讲的就是关于GUI程序背后代码撰写的部分,一个应用程序,除了有界面以外,还需要背后的代码才能实现交互

图11-9 GUI代码部分

现在我们找到OpeningFcn,在他的下面加上几行代码,执行一下看看

图11-10 Openingfcn

我一运行,立刻就有图出来了,这个原理其实是因为,我再OpeningFcn当中写的代码,他会在应用程序被打开时立刻执行,而我这个代码的作用就是在axes中画一个图像

接下来我们想想怎么给这个按钮1添加一些消息响应的代码,当我点击这个按钮1的时候就执行一些东西,我们不妨把刚才的代码剪切下来,复制到pushbutton1_Callback这个函数里面

图11-11 pushbutton1_Callback

接下来运行程序,我们预期的效果是,一开始程序打开什么都没有,当我点击按钮1的时候,突然有图出来了

图11-12 打开程序

确实一开始什么都没有,下面我们摁一下按钮1

图11-13 执行按钮1

接下来我们做个试验,如果我有两个axes,当我点击按钮1的时候,这个图会画在哪个图上呢?

图11-14 两个axes

那么问题来了,应该怎么做?下面给出解决办法

图11-15 选择确定的axes

其实就加了个代码,将surf要画的图的”tag“确定下来即可

下面我们做个小例子,这个例子的功能是,当我滑动滑动条的时候,静态文本显示的值会随着我的滑动而改变

首先是界面设计,我们先把这两个控件拖出来,调整位置和大小

图11-16 界面设计

然后我们需要修改滑动条的一些参数,最小值和最大值,因为它默认的值并不好

图11-17 滑动条参数

然后我们稍微把静态文本的字体调大一点,顺便记住他的tag,后面要用到的

图11-18 静态文本参数

界面设计就到这了,接下来我们需要写消息相应代码,代码的工作主要是,当我滑动滑动条的时候,有一个参数将我当前滑动条的值保存下来,然后传给静态文本,主要思路就是这样,所以我们的代码应该是在滑动条的函数里面写

这里我们可以去代码里找与slide关键词有关的函数,也可以直接鼠标右键滑动条->查看回调->callback,写上代码

图11-19 slider代码

然后运行下程序看看

图11-20 运行程序

讲到这里,基本上GUI入门算是快要结束了,我们再说最后一个问题,就是关于如何将我做出来的GUI程序,变成一个exe应用程序供其他计算机使用,这个其实才是主要问题,因为我们能使用是因为我们有matlab,能自动帮我们编译运行,但是别人要是想直接使用,我们就必须要做成exe文件,其实步骤也很简单,首先我们在命令行窗口输入“deploytool”,然后回车

图11-21 deploytool

选择第一个,之后他会弹出一个界面,让你设定一些东西,你也可以不设定,直接把我们的文件导入进来

图11-22 导入文件1

图11-23 导入文件2

图11-24 package

图11-25 打包

稍等一会儿,等待打包完成

图11-26 testing

图11-27 exe文件

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏守望轩

Visual Studio 2008 每日提示(六)

#051、循环使用剪贴薄里粘贴的不同内容 原文地址:http://blogs.msdn.com/saraford/archive/2007/10/01/did...

351100
来自专栏Python爬虫与算法进阶

为什么Selenium点不到元素

最近做了许多登陆项目,我会优先选择使用requests来模拟请求,但是有些参数实在是很难获取,这个时候我会使用Selenium,也还是遇到了各种坑,也算是见识到...

17100
来自专栏谦谦君子修罗刀

RN项目第一节

一、项目说明 本项目为模仿美团的项目,采用的是网上提供的API接口。导航采用 公司推荐的react-navigation,滚动条采用第三方组件react-na...

36360
来自专栏前端小叙

推荐两款简单好用的图片放大jquery插件

一、zoomfiy.js 推荐可以从这里下载 使用说明: 使用该jquery 插件 引入该插件的js:zoomfiy.js 或 min 引入该插件的css:zo...

77190
来自专栏ionic3+

【Appetite】ionic3实录(二)UI分析及总体配置

首先,如果你是初学者,我强力建议你先看完我这篇文章: 【开发指南】(四)Ionic3快速上手并了解这些

12630
来自专栏前端人人

React第三方组件1(路由管理之Router的使用②多层级跳转及重定向)

本教程总共6篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1、React第三方组件1(路由管理之Router的使用①...

34340
来自专栏上善若水

010HTML页面加载和解析流程详细介绍

24150
来自专栏无所事事者爱嘲笑

Vue中scoped css和css module比较

50220
来自专栏全栈之路

vue项目引入markdown

git地址:https://github.com/showdownjs/showdown 其实引入markdown挺简单的:

84710
来自专栏jiajia_deng

react-router 环境使用锚点的方法

15240

扫码关注云+社区

领取腾讯云代金券