经典GUI基础入门:MATLAB中GUI用户图形界面学习.pdf

上传人:灯火****19 文档编号:138009090 上传时间:2020-07-13 格式:PDF 页数:15 大小:565.77KB
返回 下载 相关 举报
经典GUI基础入门:MATLAB中GUI用户图形界面学习.pdf_第1页
第1页 / 共15页
经典GUI基础入门:MATLAB中GUI用户图形界面学习.pdf_第2页
第2页 / 共15页
经典GUI基础入门:MATLAB中GUI用户图形界面学习.pdf_第3页
第3页 / 共15页
经典GUI基础入门:MATLAB中GUI用户图形界面学习.pdf_第4页
第4页 / 共15页
经典GUI基础入门:MATLAB中GUI用户图形界面学习.pdf_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《经典GUI基础入门:MATLAB中GUI用户图形界面学习.pdf》由会员分享,可在线阅读,更多相关《经典GUI基础入门:MATLAB中GUI用户图形界面学习.pdf(15页珍藏版)》请在金锄头文库上搜索。

1、GUI 指导教程系列(1):GUI 入门基本操作 为什么在 MATLAB 中要使用 GUI 呢?其实 GUI 就是 Matlab 中的 Visual Basic, 是面向对象的编程,可以使 Matlab 程序的终端用户,即使不懂的 Matlab 也可以 轻易操作该程序! 如果没有图形用户界面(GUI)我们只能从命令行(Command Window)中调用相关程 序,这相对比较繁琐,并且不是所有用户都是这个能力。就好比计算机的 DOS 系统, 在有 windows 的情况下,您会选择 DOS 吗?当然我们也不排除骨灰级的人 物! 在本节教程我们主要针对没有 GUI 创建和使用经历的网友,但是必要

2、的 MATLAB 基础知识是需要的。在教程中我们将创建一个简单的 GUI 程序,它执行两个数的 加法运行,然后显示其运算结果。 好下面开始我们的教程! 一、打开和创建一、打开和创建 GUIGUI 界面界面 1、首先打开 Matlab,在 Command Window 中输入 guide 回车 2、此时打开 GUI 编辑器 GUIDE(GUI Developer 的缩写) 2.1 界面上有两个标签也“Creat New GUI”和“Open Existing GUI” 如果创建新的 GUI 此时我们选择第一个标签页,但如果打开其它已经存在的 GUI 就点击第二个标签吧 2.2 这里我们选择第一个

3、标签下的“Blank GUI”(空白 GUI),下面还有几个系 统 GUI 模版,你可以根据需要选择其它的。 2.3 点击“OK”我们正式进入 GUIDE 界面,呵呵,是不是感觉似曾相识 3、添加你需要的控件到 figure 中 在添加控件之前,您最好对您的 GUI 界面布局已经有一定的构思了,否则盲目性 太大了不利于您的编程。下面是我们构思的布局。 二、添加控件和设置属性二、添加控件和设置属性 在正式讲解之前,我们先讲解下 GUI 中的鼠标基本操作 (a) 在左边的控件面板中鼠标左击选择您需要的控件,然后放开鼠标 (b) 在右边的 figure 中按住左键,画出您的控件,于是空间就在 fig

4、ure 上 (c) 你可以用鼠标拖拽 figure 上所有控件,来改变他们的位置 (d) 在控件上双击鼠标左键(右击是快捷菜单)可打开控件属性面板 1、从上面的布局构思,我们知道本 GUI 需要以下控件 :三个“编辑文本框”(Edit Text) :三个“静态文本框”(Static Text) :一个“确定按钮”(Pushbutton) 按照上面介绍的鼠标操作方法,将这 6 个控件拖到右边的 figure 中,如下图所 示 2、接下来就是编辑这些控件的属性 好,下面从 Static Text 开始吧,双击其中一个“静态文本块”,将跳出该控件 的“属性查看器”(Property Inspecto

5、r) GUI 控件的几个常用属性说明如下: position:指示空间在 figure 中的位置 font*:字体相关属性 string:相当如 VB 中的 caption,就是显示在控件上的文字 tag:控件的唯一标识符,相当于 ID,我们需要 tag 来指定某一个空间 2.1 在这里我们修改它的“string”属性为“+” 2.2 同理修改它的“fontsize”属性为 20 在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时 属性会自动保存。回到 GUIDE,如果控件上的文字被部分隐盖,此时可以通过鼠 标拖拽改变控件的大小。 二、添加控件和设置属性二、添加控件和设置属

6、性 在正式讲解之前,我们先讲解下 GUI 中的鼠标基本操作 (a) 在左边的控件面板中鼠标左击选择您需要的控件,然后放开鼠标 (b) 在右边的 figure 中按住左键,画出您的控件,于是空间就在 figure 上 (c) 你可以用鼠标拖拽 figure 上所有控件,来改变他们的位置 (d) 在控件上双击鼠标左键(右击是快捷菜单)可打开控件属性面板 1、从上面的布局构思,我们知道本 GUI 需要以下控件 :三个“编辑文本框”(Edit Text) :三个“静态文本框”(Static Text) :一个“确定按钮”(Pushbutton) 按照上面介绍的鼠标操作方法,将这 6 个控件拖到右边的

7、figure 中,如下图所 示 2、接下来就是编辑这些控件的属性 好,下面从 Static Text 开始吧,双击其中一个“静态文本块”,将跳出该控件 的“属性查看器”(Property Inspector) GUI 控件的几个常用属性说明如下: position:指示空间在 figure 中的位置 font*:字体相关属性 string:相当如 VB 中的 caption,就是显示在控件上的文字 tag:控件的唯一标识符,相当于 ID,我们需要 tag 来指定某一个空间 2.1 在这里我们修改它的“string”属性为“+” 2.2 同理修改它的“fontsize”属性为 20 在编辑完这些

8、属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时 属性会自动保存。回到 GUIDE,如果控件上的文字被部分隐盖,此时可以通过鼠 标拖拽改变控件的大小 2.3 重复上面的操作 (1)将第二个“Static Text”的“string”改为“=”,“fontsize”为 20 (2)第三个“Static Text”的“string”改为“My Adder GUI”,“fontsize” 为 20 于是,我们将得到如下所示的 GUI 界面 2.4 下面双击 Edit Text,修改编辑文本框的属性 (1)第一个“Edit Text”的用来存储第一个加数,我们将“string”改为“0”,

9、“tag”改为“input1_editText” (2)第二个“Edit Text”的用来存储第二个加数,我们将“string”改为“0”, “tag”改为“input2_editText” (3)第三个“Edit Text”的“string”改为“0”,“tag”为“answer_static Text” 2.5 修改 Pushbutton 按钮的属性,“string”改为“Add!”,“tag”改为“a dd_pushbutton” 再次预览下我们现在得到的 GUI 界面 3、重新布局和移动控件位置,使其美观 将上面编辑完的 GUI 程序保存为 myAdder,此时在当前目录下,Matla

10、b 将自动生 成如下来个两个文件 myAdder.m 和 myAdder.fig。 .fig 文件包含了程序的图形用 户界面,.m 文中包含了 GUI 所需的回调函数和其他必须代码。 三、书写三、书写 GUIGUI 回调函数回调函数(callback)(callback)代码代码 在保存 GUI 程序时,Matlab 会自动生成.fig 和.m 文件,其中的.m 就是我们现在 要操作的对象。 我们就是 M 文件中添加控件的回调函数相应用户的操作! 这也是 GUI 编程的核心 内容,它要求你必须掌握 Matlab 基本编程以及图形句柄语句! 打开.m 文件,发现里面有很多 function 的代

11、码,看得我们眼花缭乱,呵呵,不 要胆怯!本教程是初级教程, 我们只涉及里面的 callback,其他的我们可以暂 时置之不理!至于其它的我们以后的教程中对做相关介绍! 在正式讲解之前,一个小使用技巧,Matlab Editor(代码编辑器)工具栏显示函 数按钮 ,可以让我们快速跳转我们需要的函数位置!这个在.m 内容很多的时候很有用 哦! 1、在 Editor 中工具栏的函数 Show Function 中选择 input1_editText_Callbac k 或者右击 tag 为 input1_editText 的编辑文本框,View CallbackCallback 2、此时光标会跳转到

12、.m 文件的 function input1_editText_Callback 处,方便 我们直接编辑 1. function input1_editText_Callback(hObject, eventdata, handl es) 2. % hObject handle to input1_editText (see GCBO) 3. % eventdata reserved - to be defined in a future version of MATLAB 4. % handles structure with handles and user data (see GUIDA

13、T A) 5. 6. % Hint: get(hObject,String) returns contents of input1_ed itText as text 7. % str2double(get(hObject,String) returns contents of 8. % input1_editText as a double 复制代码 在上面代码下添加如下 MATLAB 代码 1. % handles 包含 figure 中所有图形对象句柄的结构体,如果我们想 引用 tag 为 mytag 的控件,使用 handles.mytag 2. % set/get 函数是用来设置/获

14、取某个控件属性 3. % 使用 get 命令获取第一个加数,并将它转换成数值 4. input = str2num(get(hObject,String); % string 属性是字符 串,所以必须转换成数值 5. 6. % 检验输入是否为空,是则将它置为 0 7. if (isempty(input) 8. set(hObject,String,0) 9. end 10. 11.% 保存 handles 结构体,只要在 handles 结构体有改变时,才需要保 存 12.guidata(hObject, handles); % 这里由于 handles 没有改变,故这 里其实没有必要,但是

15、为了避免潜在的不必要麻烦,建议在所有 Cal lback 最后都添加该命令 复制代码 3、为 input2_editText_Callback 添加完全相同的代码 4、编辑 add_pushbutton_Callback 回调函数,使用上面提到的方法,将光标定 位到 1. % - Executes on button press in add_pushbutton. 2. function add_pushbutton_Callback(hObject, eventdata, handle s) 3. % hObject handle to add_pushbutton (see GCBO)

16、4. % eventdata reserved - to be defined in a future version of MATLAB 5. % handles structure with handles and user data (see GUIDAT A) 复制代码 在后面我们添加上如下代码 1. a = get(handles.input1_editText,String); 2. b = get(handles.input2_editText,String); 3. % a 和 b 是字符串变量,我们需要使用 str2double 函数将其转换为 数值 4. % 然后才能相加,否则字符串是没法相加的 5. total = str2num(a) + str2num(b); % 格式转换,转换为数值 6. % 由于 string 属性是字符串,所以必须将两个数的和转换为字符串 7. c

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号