Matlab GUI memo

    有一段时间没写博客,一周4篇文章都坚持不下来,不知道写哪个方面的内容,写研究相关就怕论文查重查到,其他方面也没太多时间去学。还是花时间多学点其他方面。废话到此,很早就做过matlab gui相关,现在想做一个论文的系统演示,很多东西又忘了又没有记录,再熟悉一次又得花大功夫,所以在这里系统的记录下。

  一、创建GUI的方式

    学习GUI最好的材料当然是matlab的官方文档了,本文也是按照相应的方式的来写的。GUI就是简单的用户界面和对这些界面元素的响应,所以主要包含两块内容一是界面的设计,二是对控件元素的代码的编写。

创建GUI的方式有两种

1)使用GUIDE

    这个就比较简单,就是在一个交互界面上拖动元素,排列组合生成界面,然后对每个控件写上相应的响应代码(callback函数)。下面展示了在matlab R2013上一个交互创建GUI的界面。左边是各种可以利用的控件,而右边是一整块可以画图的画布,可以把各种控件放在上面。保存fig后会自动生成对应控件的callback函数。

image

2)编码的方式

    写一个程序文件定义好每个控件的属性和行为,当用户运行这个文件时,matlab会创建一个图形界面。并生成相应的组件,能够处理用户的交互。运行并不会每次保存界面图形而是每次运行都是重新创建一个。入门的推荐使用第一种方式。

  二、简单的例子

gs_guide15

    这个是matlab提供的一个例子,打开guide界面后,显示如上,为了能够将控件的文本显示在控件上,通过设置File > Preferences > GUIDE. 选择 Show names in component palette. 点击 OK.就可以了

 gu_introa_noanno8b

    这样控件的名称就会在底下显示出来,更直观和容易选择。按照simple_GUI 上的提示将所有控件添加到界面上,可以通过属性窗口来设置属性。比如更改名字,改变大小等。也可以通过对齐方式来对齐控件,使布局更加美观整洁。

 三、为常见部件编码

    为部件编写的代码主要在回调函数里编写。所以首先要对回调函数有个了解。

3.1 回调函数

    回调函数是你为GUI特定部件写的函数。回调函数能够通过响应部件上的事件来控制部件的行为。这些行为如:按下按键,选择菜单等。这就是所谓事件驱动编程。当你创建好GUI保存之后就会自动生成对应的一系列回调函数,这些回调函数都是只有一个函数名和参数列表,里面的代码需要自己编写。那要如何找到某个部件对应的callback函数,只要在GUI界面,右键选择view callback即可。

3.2 编写回调函数

    编写回调函数就如同一般函数那样编写,你在某个按键下编写的回调函数就是当这一按键按下时会执行的一些代码。注意一点,如果某个变量想要在其他的回调函数里面使用,那么可以通过设置这一变量为global全局变量。这一变量在其他函数里就可以直接使用。取得某个部件的值,比如Check Box,Edit Text,Radio Button等。主要是通过取得部件的句柄来实现的。

button_state = get(hObject,'Value');

user_string = get(hObject,'String');

猜你喜欢

转载自blog.csdn.net/H2008066215019910120/article/details/44838967