版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、GUI 指导教程系列 (1:GUI 入门基本操作为什么在 MATLAB 中要使用 GUI 呢?其实 GUI 就是 Matlab 中的 Visual Basic, 是面向对象的编程, 可以使 Matlab 程序的终端用户, 即使不懂的 Matlab 也可以 轻易操作该程序!如果没有图形用户界面 (GUI我们只能从命令行 (Command Window中调用相关程 序,这相对比较繁琐,并且不是所有用户都是这个能力。就好比计算机的 DOS 系统, 在有 windows 的情况下, 您会选择 DOS 吗?当然我们也不排除骨灰级的人 物!在本节教程我们主要针对没有 GUI 创建和使用经历的网友,但是必要
2、的 MATLAB 基础知识是需要的。 在教程中我们将创建一个简单的 GUI 程序, 它执行两个数的 加法运行,然后显示其运算结果。 好下面开始我们的教程!一、打开和创建 GUI 界面1、首先打开 Matlab ,在 Command Window中输入 guide 回车 2、此时打开 GUI 编辑器 GUIDE(GUI Developer的缩写 2.1 界面上有两个标签也“Creat New GUI”和“Open Existing GUI”如果创建新的 GUI 此时我们选择第一个标签页, 但如果打开其它已经存在的 GUI 就点击第二个标签吧2.2 这里我们选择第一个标签下的“Blank GUI”
3、(空白 GUI ,下面还有几个系 统 GUI 模版,你可以根据需要选择其它的。 2.3 点击“OK”我们正式进入 GUIDE 界面,呵呵,是不是感觉似曾相识 3、添加你需要的控件到 figure 中在添加控件之前, 您最好对您的 GUI 界面布局已经有一定的构思了, 否则盲目性 太大了不利于您的编程。下面是我们构思的布局。 二、添加控件和设置属性在正式讲解之前,我们先讲解下 GUI 中的鼠标基本操作(a 在左边的控件面板中鼠标左击选择您需要的控件,然后放开鼠标(b 在右边的 figure 中按住左键,画出您的控件,于是空间就在 figure 上(c 你可以用鼠标拖拽 figure 上所有控件,
4、来改变他们的位置(d 在控件上双击鼠标左键 (右击是快捷菜单 可打开控件属性面板1、从上面的布局构思,我们知道本 GUI 需要以下控件 :三个“编辑文本框”(Edit Text :三个“静态文本框”(Static Text :一个“确定按钮”(Pushbutton按照上面介绍的鼠标操作方法,将这 6个控件拖到右边的 figure 中,如下图所 示 2、接下来就是编辑这些控件的属性好,下面从 Static Text开始吧,双击其中一个“静态文本块”,将跳出该控件 的“属性查看器”(Property Inspector GUI 控件的几个常用属性说明如下:position :指示空间在 figur
5、e 中的位置font*:字体相关属性string :相当如 VB 中的 caption ,就是显示在控件上的文字tag :控件的唯一标识符,相当于 ID ,我们需要 tag 来指定某一个空间2.1 在这里我们修改它的“string”属性为“+” 2.2 同理修改它的“fontsize”属性为 20在编辑完这些属性后, 直接点击右上角的“关闭”按钮, 关闭属性查看器, 此时 属性会自动保存。回到 GUIDE ,如果控件上的文字被部分隐盖,此时可以通过鼠 标拖拽改变控件的大小。二、添加控件和设置属性在正式讲解之前,我们先讲解下 GUI 中的鼠标基本操作(a 在左边的控件面板中鼠标左击选择您需要的控
6、件,然后放开鼠标(b 在右边的 figure 中按住左键,画出您的控件,于是空间就在 figure 上(c 你可以用鼠标拖拽 figure 上所有控件,来改变他们的位置(d 在控件上双击鼠标左键 (右击是快捷菜单 可打开控件属性面板1、从上面的布局构思,我们知道本 GUI 需要以下控件 :三个“编辑文本框”(Edit Text :三个“静态文本框”(Static Text :一个“确定按钮”(Pushbutton按照上面介绍的鼠标操作方法,将这 6个控件拖到右边的 figure 中,如下图所 示 2、接下来就是编辑这些控件的属性好,下面从 Static Text开始吧,双击其中一个“静态文本块
7、”,将跳出该控件 的“属性查看器”(Property Inspector GUI 控件的几个常用属性说明如下:position :指示空间在 figure 中的位置font*:字体相关属性string :相当如 VB 中的 caption ,就是显示在控件上的文字tag :控件的唯一标识符,相当于 ID ,我们需要 tag 来指定某一个空间2.1 在这里我们修改它的“string”属性为“+”2.2 同理修改它的“fontsize”属性为 20在编辑完这些属性后,直接点击右上角的“关闭”按钮,关闭属性查看器,此时 属性会自动保存。回到 GUIDE ,如果控件上的文字被部分隐盖,此时可以通过鼠
8、标拖拽改变控件的大小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” , “tag”改为“input1_editText” (2第二个 “Edit Text” 的用来存储第二个加数, 我们将 “string”改为
9、“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 , 此时在当前目录下, Matlab 将自动生 成如下来个两个文件 myAdder.m 和 myAdder.fig 。 .fig 文件包含了程序的图形用 户界面,
10、 .m 文中包含了 GUI 所需的回调函数和其他必须代码。三、书写 GUI 回调函数 (callback代码在保存 GUI 程序时, Matlab 会自动生成 .fig 和 .m 文件, 其中的 .m 就是我们现在 要操作的对象。我们就是 M 文件中添加控件的回调函数相应用户的操作! 这也是 GUI 编程的核心 内容,它要求你必须掌握 Matlab 基本编程以及图形句柄语句!打开 .m 文件,发现里面有很多 function 的代码,看得我们眼花缭乱,呵呵,不 要胆怯!本教程是初级教程, 我们只涉及里面的 callback ,其他的我们可以暂 时置之不理!至于其它的我们以后的教程中对做相关介绍
11、!在正式讲解之前,一个小使用技巧, Matlab Editor(代码编辑器 工具栏显示函 数按钮,可以让我们快速跳转我们需要的函数位置!这个在 .m 内容很多的时候很有用 哦!1、 在 Editor 中工具栏的函数 Show Function中选择 input1_editText_Callbac k 或者右击 tag 为 input1_editText的编辑文本框,View CallbackCallback 2、此时光标会跳转到 .m 文件的 function input1_editText_Callback处,方便 我们直接编辑1. function input1_editText_Call
12、back(hObject, eventdata, handl es2. % hObject handle to input1_editText (see GCBO3. % eventdata reserved - to be defined in a future version of MATLAB4. % handles structure with handles and user data (see GUIDAT A5.6. % Hint: get(hObject,'String' returns contents of input1_ed itText as text7
13、. % str2double(get(hObject,'String' returns contents of8. % input1_editText as a double复制代码在上面代码下添加如下 MATLAB 代码1. % handles 包含 figure 中所有图形对象句柄的结构体,如果我们想 引用 tag 为 mytag 的控件,使用 handles.mytag2. % set/get 函数是用来设置 /获取某个控件属性3. % 使用 get 命令获取第一个加数,并将它转换成数值4. input = str2num(get(hObject,'String&
14、#39; % string属性是字符 串,所以必须转换成数值5.6. % 检验输入是否为空,是则将它置为 07. if (isempty(input8. set(hObject,'String','0'9. end10.11.% 保存 handles 结构体, 只要在 handles 结构体有改变时, 才需要保 存12.guidata(hObject, handles; % 这里由于 handles 没有改变,故这 里其实没有必要,但是为了避免潜在的不必要麻烦,建议在所有 Cal lback 最后都添加该命令复制代码3、为 input2_editText_Cal
15、lback添加完全相同的代码4、编辑 add_pushbutton_Callback回调函数,使用上面提到的方法,将光标定 位到1. % - Executes on button press in add_pushbutton.2. function add_pushbutton_Callback(hObject, eventdata, handle s3. % hObject handle to add_pushbutton (see GCBO4. % eventdata reserved - to be defined in a future version of MATLAB5. % h
16、andles 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. % 由于 st
17、ring 属性是字符串,所以必须将两个数的和转换为字符串7. c = num2str(total; % 转换为字符串8. % 将结果赋值给 answer_staticText空间的 string 属性,于是就可 以显示结果了9. set(handles.answer_staticText,'String',c;10.guidata(hObject, handles; % 更新结构体复制代码恭喜您,到此为此这个 GUI 程序就完成了! 接下来就可以运行和演示它了! 有一个小技巧要告诉大家的 ,如果您在第一次保存 GUI 程序时,不想让 Matlab 为每一个 callback 回
18、调函数自动生成注释文本,可以如下操作:FilePrefer ences.如果不想让 Matlab 自动生成 fig 文件,而只是生成 M 文件,可以如下操作:To olsGUI Option四、 GUI 程序打开、运行和发布1、想在 GUIDE 中打开一个写好的 GUI 程序,可有两种方法1.1 如上面所说的, 在打开 GUIDE 界面时, 我们可以选择 “Open Existing GUI” , 然后选中你需要打开的 GUI 程序 1.2 直接在 Current Directory选中 *.fig文件,然后右击选择“Open In GUID E” 2、运行编辑好的 GUI 程序方法主要有三种方法2.1 点击 GUIDE 工具栏的 run 按钮,如下图所示 2.2 从 C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- P750无磁性耐腐蚀材料性能介绍
- 2024年黄草收购农户订单
- 二手车交易服务协议书2024年
- 2024年版赠与合同(610字)
- 2024年晋城客运上岗证模拟考试
- 个人间借款协议书模板2024年
- 2024年简单的借款合同(合同范本)
- 2024年内蒙古客运驾驶员考试题目及答案
- 2024年通化考客运资格证试题题库软件
- 二手房过户买卖合同2024年
- 《冠心病无创检查》课件
- 《周易》的智慧课件
- 《吃饭有讲究》同步课堂设计第1课时
- 四年级上册必读神话故事
- 《中国传统教育》课件
- 体育教练员竞技训练计划制定
- 新媒体视听节目制作 第九章 镜头的组接
- 干成孔旋挖灌注桩施工工艺
- 大数据与智能交通简介
- 车辆轴温智能探测系统(THDS)-防松铁丝的绑扎方法
- 大班数学《数字接龙》
评论
0/150
提交评论