14.MATLAB创建图形用户界面GUI

1 GUI对象层次结构



2 GUI的基本知识

本小节主要介绍如何新建GUI,打开GUI文件、Layout编辑器,GUIDE模版等GUI基础知识


2.1 启动GUI

欲启动GUI操作,可以在命令窗口中输入guide,将启动GUIDE Quick Start对话框。

GUIDE Quick Start

利用GUIDE Quick Start对话框,用户可以进行如下操作:

* 利用GUIDE模版创建一个新的GUI,用户可依照目的进行改进。

* 打开已有的GUI。


2.2 布局(Layout)编辑器

当用户在GUIDE中打开一个GUI时,该GUI将显示在Layout编辑器中

Layout编辑器是所有GUIDE工具的控制面版。

用户可以使用鼠标拖动模版左边的控件(按钮、坐标轴、单选按钮等)到中间的布局区域。


2.3 GUIDE模版介绍

GUIDE Quick Start对话框提供了几种常用的GUI模版。

使用GUI模版的好处是与使用空白GUI相比,用户可以更方便地改变该模版的布局和功能。

一旦用户选择了其中的一种模版,在GUIDE Quick Start对话框的右侧就出现该模版的预览。


2.4 运行GUI

单击工具栏最右边的绿色按钮,即运行当前的GUI窗口。

如果是第一次运行,那么MATLAB将提示对该GUI窗口进行保存,并在运行的同时,弹出M文件,给用户进行编辑操作。

任选一模板后,出现layout编辑器,注意保存时文件名应为函数名,字母开头 %图上是错误的示范2333……

3 创建GUI对象

图形用户界面设计窗口


3.1GUI设计模板

在MATLAB主窗口中,选择File菜单->New菜单项->GUI命令,就会显示图形用户界面的设计模板。最新版的MATLAB R2016b 中,选择新建->APP->GUIDE。

MATLAB为GUI设计一共准备了4种模板,分别是:

Blank GUI(默认)

GUI withUicontrols(带控件对象的GUI模板)

GUI with Axes and Menu(带坐标轴与菜单的GUI模板)

Modal Question Dialog(带模式问话对话框的GUI模板)


3.2GUI设计窗口

选中一个模板确定后,就会显示GUI设计窗口。选择不同的GUI设计模式时,在GUI设计窗口中显示的结果不同。

GUI设计窗口由菜单栏、工具栏、控件工具栏以及图形对象设计区等部分组成。

GUI设计窗口的菜单栏有File、Edit、View、Layout、Tools和Help 6个菜单项,使用其中的命令可以完成图形用户界面的设计操作。


3.3GUI设计窗口的基本操作

属性编辑器

在GUI设计窗口创建图形对象后,通过双击该对象,就会显示该对象的属性编辑器。通过属性编辑器改变属性值。

对象属性查看器

利用对象属性查看器,查看、修改、设置对象的属性值。从GUI设计窗口工具栏上选Property Inspector命令按钮,或者选择View菜单下的Property Inspector子菜单,就可以打开对象属性查看器。

另外,在MATLAB命令窗口的命令行上输入inspect,也可以看到对象属性查看器。

菜单编辑器

利用菜单编辑器,可以创建、设置、修改下拉式菜单和快捷菜单。

从GUI设计窗口的工具栏上选择Menu Editor命令按钮,或者选择Tools菜单下的Menu Editor子菜单,就可以打开菜单编辑器。

菜单编辑器左上角的第一个按钮用于创建一级菜单项。第二个按钮用于创建一级菜单的子菜单。

菜单编辑器的左下角两个按钮,选择第一个按钮,可以创建下拉式菜单。选择第二个按钮,可以创建Context Menu菜单。选择它后,菜单编辑器左上角的第三个按钮就会变成可用,单击它就可以创建Context Menu主菜单。在选中已经创建的Context Menu主菜单后,可以单击第二个按钮创建选中的Context Menu主菜单的子菜单。与下拉式菜单一样,选中创建的某个Context Menu菜单,菜单编辑器的右边就会显示该菜单的有关属性,可以在这里设置、修改菜单的属性。

菜单编辑器左上角的第四个与第五个按钮用于对选中的菜单进行左移与右移,第六与第七个按钮用于对选中的菜单进行上移与下移,最右边的按钮用于删除选中的菜单。

对象浏览器

利用对象浏览器,可以查看当前设计阶段的各个句柄图形对象。

从GUI设计窗口的工具栏上选择Object Browser命令按钮,或者选择View菜单下的Object Browser子菜单,就可以打开对象浏览器。例如,在对象设计区内创建了3个对象,它们分别是Edit、Text、Push、Button、ListBox对象,此时单击Object Browser按钮,可以看到对象浏览器。

在对象浏览器中,可以看到已经创建的3个对象以及图形窗口对象figure。用鼠标双击图中的任何一个对象,可以进入对象的属性查看器界面。

位置调整工具

利用位置调整工具,可以对GUI对象设计区内的多个对象的位置进行调整。

从GUI设计窗口的工具栏上选择Align Objects命令按钮,或者选择Tools菜单下的Align Objects菜单项,就可以打开对象位置调整器。

对象位置调整器中的第一栏是垂直方向的位置调整,第二栏是水平方向的位置调整。在选中多个对象后,可以方便的通过对象位置调整器调整对象间的对齐方式和距离。

Tab顺序编辑器

利用Tab顺序编辑器(Tab Order Editor),可以设置用户按键盘上的Tab键时,对象被选中的先后顺序。

选择Tools菜单下的Tab Order Editor菜单项,就可以打开Tab顺序编辑器。例如,若在GUI设计窗口中创建了3个对象,与它们相对应的Tab顺序编辑器。

注:

MATLAB R2016b 中视图菜单下,“属性检查器”对应属性编辑器和对象属性检查器,属性检查器可以对对象的属性进行修改和设置。“编辑器”对应菜单编辑器。

不同版本,基本功能相似,叫法稍有不同,不必拘泥。


4 GUI编程

使用句柄结构进行GUI数据操作

GUIDE提供了一种机制来存储和检索共享的数据,这些操作都通过包含有GUI控件句柄的相同结构来实现,这种机制就称为句柄结构。

句柄结构包含有GUI的所有控件的句柄,它在M文件中被传递给每一个响应。

因此,该响应对保存任意共享数据十分有用。


4.1GUI的文件

1.句柄结构共享数据

(1)在各响应之间实现数据共享     

(2)访问GUI数据

2.M文件中的函数和响应

用户可以给GUI和M文件的如下部分增加程序代码:

*打开函数(Opening function),该函数在GUI可见之前实施操作。

*输出函数(Output function),在必要的时候向命令行输出数据。

*响应(Callbacks),在用户激活GUI中的相应控件时实施操作。

M文件中的所有函数都有如下的输入参数与句柄结构相对应,M文件中的常用的输入参数如下:

*hObject,图形或是响应对象的句柄。

*handles,具有句柄或是用户数据的结构。

句柄结构往往在函数的最后阶段进行保存,使用如下命令:guidata(hObject,handles);

(1)打开函数

(2)输出函数

(3)响应


4.2给GUI的控件响应编制程序

1.“开关”按钮(Toggle Button)的响应

2.按钮(Radil Buttons)的响应

3.“复选框”控件(Check Boces)的响应

4.“文本框”控件(Edit Text)的响应

5.“滚动条”控件(Sliders)的响应

6.“列表框”控件(List Boxes)的响应

7.“弹出菜单”控件(Pop-up Menus)的响应

8.控件板(Panels)的响应


全文完,后续可能补充修正


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,799评论 25 707
  • 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 ...
    Moment__格调阅读 4,529评论 0 11
  • 界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成...
    A梦想才让心跳存在阅读 1,036评论 0 4
  • 相信很多人都和我一样,每天做着同样的工作,在学校:教室,食堂,寝室。出社会:上班,下班,回家。每天过着粗燥的生...
    傻瓜1234阅读 241评论 0 0