第7章 图形用户界面GUI设计

合集下载

第7章_Java_awt 509修改 - 副本 (2)

第7章_Java_awt 509修改 - 副本 (2)

17
Frame类(框架)
Frame类是Container类的间接子类。当需要一个窗口时, 可使用Frame或其子类创建一个对象。窗口也是一个容器,
可以向窗口添加组件。窗口默认地被系统添加到显示器屏
幕上,因此,不允许将一个窗口添加到另一个容器中。 Frame是顶级窗口,可以显示标题,重置大小。当Frame 被关闭,将产生WindowEvent事件,Frame无法直接监听 键盘输入事件。
文字、图形、图象… 不能像标准组件一样被系统识别和承认,只起装饰作用。 不能响应用户的动作,不具有交互功能。
8
7.2 组件和容器
Java的图形用户界面的最基本组成部分是组件 (Component),组件是一个可以以图形化的方 式显示在屏幕上并能与用户进行交互的对象,例
如一个按钮,一个标签等。
给用户的技术。
目前Java主要提供了两个处理图形用户界面的类库: java.awt和javax.swing。
2
AWT:抽象窗口工具集(Abstract Windows Toolkit), 其外观取决于具体的平台,可用于Java的applet和 application。 java.awt包中包含了一个完整的类集以支持GUI程序的设 计(重量级构件),比如组件、图形等。
7 7
界面元素
容器是用来组织其他界面成分和元素的单元。
可以形成容器的层次,构筑复杂结构 Window(Frame、Applet、Dialog )
组件是图形用户界面的基本单位,它里面不再包含 其他的成分。
GUI组件是图形用户界面标准化的结果。 GUI组件的作用是完成与用户的交互。
用户自定义成分
Canvas Label TextField TextArea Scrollbar

图形用户界面设计GUI

图形用户界面设计GUI
*
第6讲 程序设计
第一章
*
主要内容
M文件 M文本文件 M函数文件 程序设计 顺序结构 选择结构 循环结构 M函数文件
*
*
MATLAB有两种工作方式:
交互式的命令行工作方式
M文件的程序工作方式
*
*
用MATLAB语言编写的程序,称为M文 件,是一个简单的ASCII码文本文件. M文件有两类: 命令文件(Script File) 函数文件(Function File) 新建M文件
*
*
猜数字:guess.m
游戏开始,会随机产生一个0-100之间的 一个整数。由参与者来猜这个数字是几。 每猜一次,系统都会提示“猜大了”,还是 “猜小了”,一共有10次机会,若10次都没猜对,就 Game over!
*
*
函数文件是另一种形式的M文件,每一个函数文 件都定义一个函数。事实上,MATLAB提供的标准 函数大部分都是由函数文件定义的。 例如 inv, abs和 sqrt,利用所给的输入,返回计算所要求的结果。 Y=abs(X) 函数是一个黑箱. 只有函数的输入和输出是可见 的,至于函数中的运算过程都是隐含的。
*
*
switch num case -1 disp(‘child'); case 0 disp(‘the young'); case 1 disp(‘adult'); otherwise disp(‘the old'); end
例:根据变量 num 的值来决定显示的内容。
1
2
*
*
在条件表达式中,通常都是由
*
*
1
2
数名和文件名必须相同。 函数可以有零个或更多个输入参量,也可以有零个或更多个输出参量。当有一个以上输出变量时,输出变量包含在括号内。例如,

第七讲MATLAB图形用户界面(GUI)设计

第七讲MATLAB图形用户界面(GUI)设计

第七讲MATLAB图形⽤户界⾯(GUI)设计第7讲MATLAB图形⽤户界⾯(GUI)设计图形⽤户界⾯(GUI, Graphical User Interface)是由图形控件构建的⽤于⼈与计算机交互信息的界⾯。

在图形⽤户界⾯上,⽤户可以根据界⾯上的提⽰信息完成⾃⼰的⼯作,⽽不需要记忆⼤量繁琐的命令,只需通过⿏标、键盘等便捷的⽅式与计算机交互信息、选择想要运⾏的程序、控制程序的运⾏、实时显⽰图形信息。

MATLAB创建的图形⽤户界⾯对象有三类:⽤户界⾯控件,如按钮、列表框、编辑框等;下拉菜单,如菜单、⼦菜单;内容菜单,如弹出式菜单。

⼀、命令⾏建⽴⽤户界⾯的⽅法1、创建控件命令:uicontrol调⽤格式:1)uicontrol(‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在当前图形⽤户的界⾯上,应⽤当前制定的属性值创建控件;2)h=uicontrol(‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在当前图形⽤户的界⾯上,应⽤当前制定的属性值创建控件,并返回控件的句柄;3)uicontrol(FIG, ‘PropertyName1’,value1, ‘PropertyName2’,value2,……)功能:在句柄FIG指定的图形⽤户界⾯上,创建控件;4)h=uicontrol(FIG, ‘PropertyName1’,value1, ‘PropertyName2’,value2,……) 功能:在句柄FIG指定的图形⽤户界⾯上,创建控件,并返回控件的句柄。

说明:函数中的PropertyName参数的参数值有:Push buttons(命令按钮)、sliders (滚动条控件)、Radio button(单选按钮)、Check box(复选框)、Edit text (可编程⽂本框)、Static text(静态⽂本框)、Pop_up menus(弹出式菜单)、listbox(列表框)、Toggle button(开关按钮)、Axes(坐标轴)、Panel(⾯板控件)、Button group(按钮组框)、ActiveX control(ActiveX 控件)。

第7章 图形用户界面GUI设计

第7章 图形用户界面GUI设计
属性名称 BackgroundColor 设置控件背景颜色 说明
Enable
FontName FontSize FontWeight ForegroundColor Position String
设置控件的使用状态,“on”表示选中
设置字体 设置字体大小 设置字体粗细 前景色,控件文本颜色,默认为黑色 控件对象的尺寸和位置 取值为字符串矩阵或数组,定义标题或选项内容
5.编写GUI回调函数(Callback)代码 打开“yunsuanqi.m”文件,找到相应的回调函数位置,编写 Callback代码。 (3)为“addition_pushbutton1_Callback”添加代码
(4)为其它3个按钮的回调函数添加代码
只需修改第3行代码,把“+”分别改成“-”、“*”、“/”即可。
5.编写GUI回调函数(Callback)代码 打开“yunsuanqi.m”文件,找到相应的回调函数位置,编写 Callback代码。 (1)为“input1_editText_Callback”添加代码
(2)为“input2_editText_Callback”添加代码
Function input2_editText_Callback(hObject,eventdata,handles) %代码与(1)中的代码完弹出式菜单”实现算法的选择。 在上述界面设计过程中,使用了 4 个按钮分别表示“加法”、 “减法”、“乘法”和“除法”,下面给出使用一个“弹出式菜单” 代替这4种运算的设计。
保存的同时会在当前路径下自动产生两个文件:一个是 “guiHello. fig”文件,另一个是“guiHello.m”文件。其中, “guiHello.fig”文件包含对GUI和GUI组件的完整描述,它也是 打开输出编辑器界面“guiHello.fig”窗口的文件; “guiHello.m”文件包含控制GUI的代码、组件的回调函数。 单击运行按钮,显示结果就是我们所设计的GUI功能界面, 如图所示。

Matlab图形用户界面GUI

Matlab图形用户界面GUI
18
六、对象浏览器
利用对象浏览器,可查看当前所创建的图形对象。从对象设计编辑器界面的工 具栏上选择,或者选择“View”菜单下的“Object Browser”选项,可以打开 对象浏览器。
图 7-9 对象浏览器
19
第二节 GUI向导设计
GUI的向导设计,简单地说,就是利用GUI设计工具集实现多种 控制对象的设计。本节我们将通过实例实践其具体操作过程。 【例7-1】 设计一个带有三个按钮和一个坐标轴的图形用户界面,当用 鼠标点击三个按钮时,分别在坐标轴内画sphere,和membrane三个图 形。peaks 创建控件 前面我们已经建立了带有一个坐标轴和三个按钮控件的图形界面, 这里就不赘述了,如前图7-3所示。 设置控件对齐方式 若控件排列不够整齐,当控件个数较少时,逐个调整尚可,但当控 件个数较多时,逐个调整将变得麻烦,费时,这时我们可以应用几何 位置排列工具对控件的位置进行调整。 首先要将待调整的控件同时选中。选中方法有两种:一是按住 “Ctrl”键,用鼠标左键逐一点击要调整的控件;二是按住鼠标左键 进行拖拽框选,然后点击工具栏上的打开几何位置排列工具窗口,再 点击下面的,使得所选的控件左对齐,点击“确定”后,界面设计编 辑器效果如图7-10所示。
通常状态下,弹出式菜单以矩形的形式出现,矩形中 含有当前选择的选项,在选项右侧有一个向下的箭头来表 明该对象是一个弹出式菜单。当指针处在弹出式菜单的箭 头之上并按下鼠标时,出现所有选项。移动指针到不同的 选项,单击鼠标左键就选中了该选项,同时关闭弹出式菜 单,显示新的选项。
选择一个选项后,弹出式菜单的“Value”属性值为该 选项的序号。
单选按钮一般用于在一组互斥的选项中选择 一项。为了确保互斥性,各单选按钮的回调程序 需要将其它各项的“Value”值设为“0”。

第7章 GUI图形用户界面设计

第7章 GUI图形用户界面设计

Interruptible
取值为on或off
7.3.3 对 文件保存对话框:用于保存文件 颜色设置对话框:用于图形对象颜色的交互设置 字体设置对话框:用于字体属性的交互式设置 打印设置对话框:用于打印页面的交互式设置 打印预览对话框:用于对打印页面进行预览 打印对话框:用于打印参数设置 错误信息对话框:用于提示错误信息 帮助对话框:用于帮助提示信息 输入对话框 列表选择对话框 信息提示对话框 问题提示对话框 进程条 警告信息对话框
第7章 GUI图形用户界面设计
本讲目标
了解GUI设计的基本流程 掌握GUI控件的设计方法 掌握GUI中主要的函数结构
主要内容
1 2 GUI图形用户界面设计 GUI设计方法
3
4 5
用户控件的制作
用户菜单的制作
M文件的函数构成
7.1 GUI设计工具介绍
7.1.1 GUI的启动方法
启动GUI的方式
菜单编辑器(Menu Editor):用来实现菜单的设计和编辑 位置调整工具(Alignment tool):用于调节各控件对象之间的几何关系和位置
对象浏览器(Object Browsers):用于浏览当前GUI应用程序中所有的对象信息
Tab顺序编辑器(Tab Order Editor):用于调整所有控件对象的Tab键的切换顺序 M文件编辑器(M-File Editor):用于编辑GUI应用程序中的函数文件

Type:取值为uicontrol,表明图形对象的类型 UserData:取值为空矩阵,用于保存与该控件对象相关的重要数据和信息; Visible:取值为on或off
(2)控件对象的基本控制属性
BackgroundColor:取值为颜色的预定义字符或RGB数值 Callback:取值为字符串,可以是某个M文件名或一小段MATLAB语句,当用户激活某个控件 对象时,应用程序就运行该属性定义的子程序 Enable:取值为on(默认值),inactive和off

图形用户界面GUI设计

图形用户界面GUI设计

6.3.4 正弦波合成器 【例6-3-4】设计一个正弦波合成器:输入3种正弦 波的频率值,绘制出它们合成后的波形图 。
② String—— 控件外观显示(字符串),在同一 GUI 中各个控件的 String 属性可以相同,同类 型控件的 String 属性默认为:控件名。根据 Push Button 的功能可以给它们设置更有可读性 的 String 属性,如:将图 6-4 的 GUI 中 2 个 Push Button 的 String 属 性 设 置 为 Draw Peaks 和 Draw LOGO。 ③ Fontname——字体(字符串)。 ④ Fontsize——字号(double)。 ⑤ Callback——回调函数(字符串,一般为M文件 名或MATLAB指令)是用户点击Push Button控 件时所执行的操作,它决定了Push Button控件 的功能。
6.2.5 Listbox 列表框 为限定性输入控件,在长方形文本显示区将 所有选项都显示出来,用户点击选择其中的某 一行或几行。 Listbox的主要属性有: ①String——控件外观显示(多行字符串)。 ②Max——最大可选项目数(正整数),默认值为 1 。当 Max≥2 时,用户可用【Ctrl】键加鼠标单 击来选中多项内容。 ③ Value—— 当前选取值(正整数行向量),其元 素对应着被选中项的序号。 Listbox 的输入常用以下指令读取: a = get ( handles.list1, ’Value’ )
本节只介绍几种常用的用户控件及其重要 属性的设置方法,其它控件的用法在 6.3 节的 GUI设计实例中体现。 6.2.1 Push Button按钮 Push Button控件显示为带有文字标识的矩形按 钮,用户使用鼠标点击时会显示出“按下”和 “释放”两种效果。 Push Button控件的属性主要有以下几种: ①Tag——控件标识(字符串),与控件一一对应 的名称,任何程序均可通过此标识来控制该控 件。

图形用户界面设计GUI

图形用户界面设计GUI

2020/12/17
17
编写函数tran(),实现直角坐标(x,y)与极坐 标(r,θ)之间的转换。
tran.m
function [r,theta] = tran(x,y) r =sqrt(x*x+y*y); theta =atan(y/x);
调用 tran函数
>> x=3;y=4; >> [r,t]=tran(x,y)
2020/12/17
9
动画效果
运用视觉暂留的现象,将静态图形制作成动画 两种方法: 1. 将多幅静态图存放到图形缓冲区(帧矩阵)内,
再逐一的播放出来。 getframe, movie 2. 利用图形对象的‘EraseMode’属性,更新运
动部分的图案,保持图形背景图案不变
• 示例
2020/12/17
elseif nargin==3 f=(a*b*c)/2;
end
2020/12/17
命令文件mydemo.m: x=[1:3];y=[1;2;3]; examp(x) examp(x,y') examp(x,y,3)
执行mydemo.m后的输出是: ans = 123 ans = 246 ans = 21
函数调用的一般格式是:
[输出实参表]=函数名(输入实参表)
>>[area, l]=fcircle(1)
2020/12/17
36
3 .函数所传递参数的可调性
MATLAB在函数调用上有一个与众不同之处: 函数所传递参数数目的可调性。凭借这一点,一
个函数可完成多种功能。
linspace(d1,d2,n) linspace(d1,d2)
41
调用格式: disp(输出项) 注:输出项为字符串或矩阵。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.编写GUI回调函数(Callback)代码 打开“yunsuanqi.m”文件,找到相应的回调函数位置,编写 Callback代码。 (1)为“input1_editText_Callback”添加代码
(2)为“input2_editText_Callback”添加代码
Function input2_editText_Callback(hObject,eventdata,handles) %代码与(1)中的代码完全相同,即可获取第二个数
function pushbutton1_ ButtonDownFcn(hObject,eventdata,handles)
%
function pushbutton1_ KeyPressFcn(hObject,eventdata,handles)
%
7.2 GUI的创建
创建GUI主要包括设计 GUI(界面布局)、控件属性设置、回调 函数编写和保存运行等步骤。下面以简单四则运算器界面为例,说明 用GUIDE创建GUI的全过程。
7.1.5 回调函数
实现GUI的基本机制是对控件的Callback(回调函数)属性编程, 当在设计界面上选中一个控件后,选择菜单栏中的“View”→“View Callbacks”命令,或单击鼠标右键,从弹出的快捷菜单选择“View Callbacks”,就会出现“Callback”、“CreateFcn”、 “DeleteFcn”、“ButtonDownFcn”和“KeyPressFcn”子菜单, 这些选项都是用来编写回调函数的,其作用如下所示 。 CallBack:为一般回调函数,因不同的控件而不同。例如,按钮 被按下时发生、下拉框改变值时发生、sliderbar 拖动时发生等。 大 多数MATLAB程序代码都在这里编写,可实现诸多功能。 CreateFcn:在控件对象创建时发生(一般为初始化样式,颜色、 初始值等)。 DeleteFcn:在控件对象被清除时发生。 ButtonDownFcn:鼠标单击事件的回调函数。 KeyPressFcn:按键事件的回调函数。
Tag
取值为字符串,定义控件的标识值,任何程序都 通过这个标识值控制该控件
7.1.4 界面的存储及运行
单击输出编辑器窗口工具栏中的保存按钮,或者选择菜单 “File”→“Save as”命令,弹出“Save as”对话框,输入用户 定义的文件名,如输入guiHello。单击“保存”按钮,这时输出 编辑器界面变成名称为“guiHello.fig”的窗口,如图所示。
Static Text:静态文本框,仅用于显示说明文字
Pop-up Menu:弹出式列表,让用户从一列菜单项中选择一项 Axes:坐标轴,用于在GUI中添加图形或图像
7.1.3 控件功能与属性
2. 控件属性
每种控件都有一些可以设置的参数,用于表现控件的外形、功能及效果, 即属性。控件属性包括属性名和属性值,其名称和说明如表所示。
1.GUIDE的启动
选择MATLAB主界面菜单“File”→“New”→“GUI”命令,或点击工具 栏GUIDE图标,或直接在MATLAB命令窗口输入guide,都可弹出对话框 “GUIDE Quick Start”界面,如下图所示。
2.GUIDE的界面组成
“GUIDE Quick Start” 对话框包括两个选项卡:“ Create New GUI” (创建新的图形用户界面)和“Open Existing GUI”(打开已存在的图形用 户界面)。其中“Create New GUI”提供四种基本类型的GUI模板: Blank GUI(Default):空白模板(缺省)。 GUI with Uicontrols:带有控件对象的GUI模板。 GUI with Axes and Menu:带有坐标轴与菜单的GUI模板。 Modal Question Dialog:问答式对话框的GUI模板。 通过这些模板可快速创建GUI。选定一种模板以后,它的预览效果显示在 右边的面板中。譬如选中“GUI with Uicontrols”,显示在面板中的预览效 果如下图所示。
5.编写GUI回调函数(Callback)代码 打开“yunsuanqi.m”文件,找到相应的回调函数位置,编写 Callback代码。 (3)为“addition_pushbutton1_Callback”添加代码
(4)为其它3个按钮的回调函数添加代码
只需修改第3行代码,把“+”分别改成“-”、“*”、“/”即可。
7.1.2 输出编辑器
在“GUIDE Quick Start”对话框中,点击“Create New GUI” 选项卡,选择“Blank GUI”选项,打开的就是带有空白GUI模板的 “输出编辑器”窗口,如图所示。
7.1.3 控件功能与属性
1.控件与组件的功能 输出编辑器中的控件大致可分为两种:一种为动作控件,鼠标 点击这些控件时会产生相应的响应;另一种为静态控件,是一种不产 生响应的控件,如文本框等。 Push Button:触控按钮,执行某种预定的功能或操作 Radio Button :单选按钮,一组中只能选一个 Check Box :复选框,一组中可选多个 Edit Text:文本编辑器,可使用键盘输入字符串,也可编辑
本章介绍图形用户界面的环境,以及GUI设计、用IDE界面环境
MATLAB中的图形用户界面开发环境 GUIDE(GUI Developer)提供了多种设计GUI的模板,并自动生成M文件框架, 用户可以在该框架内编写自己的函数代码,实现所需要的功能。
7.1.1 GUIDE的启动及界面组成
6.运行结果产生GUI功能界面 单击文件“yunsuanqir.m”工具栏的运行按钮,或单击名称为 “yunsuanqi.fig”窗口中工具栏的运行按钮,运行结果产生具有操作 功能的GU I界面,如图所示。
若在图中第一个编辑文本框中输入“450”,在第二个编辑文本 框 中 输 入 “ 567 ” , 单 击 “ 加 法 ” 按 钮 , 则 立 即 显 示 出 结 果 “1017”,如图所示。 至此完成了用 GUIDE 创建 GUI 的整个过程。
保存的同时会在当前路径下自动产生两个文件:一个是 “guiHello. fig”文件,另一个是“guiHello.m”文件。其中, “guiHello.fig”文件包含对GUI和GUI组件的完整描述,它也是 打开输出编辑器界面“guiHello.fig”窗口的文件; “guiHello.m”文件包含控制GUI的代码、组件的回调函数。 单击运行按钮,显示结果就是我们所设计的GUI功能界面, 如图所示。
1.打开输出编辑器
单击MATLAB主界面工具栏GUIDE图标,选择空模板“Blank GUI(Default)”选项,单击“OK”,即可打开GUIDE的输出编辑器 设计界面“untitled.fig”。 2.界面布局
添加需要的控件到输出编辑器“untitled.fig”窗口中的合适位 置,对多个同样的控件摆放整齐、设置间距,可以单击工具栏中的排 列“Align Objects”按钮,进行各种方式处理,并可用鼠标选中右 下角的版面大小控制句柄来缩放版面。
7.1.5 回调函数
回调函数(CallBack)包含在由GUIDE形成的M文件中,GUIDE 会自动生成相应的函数体、函数名。名称一般是控件“Tag+Call” 类型名,参数有3个(hObject、eventdata、handles),其中, hObject为发生事件的源控件,eventdata为事件数据结构(保留参 数),handles为传入的对象句柄(结构体类型)。具体格式如下: function pushbutton1_Callback(hObject,eventdata,handles) % function edit1_ CreateFcn(hObject,eventdata,handles) % function text1_ DeleteFcn(hObject,eventdata,handles) %
3.编辑控件的属性 利用属性查看器(Property Inspector)设置各个控件的参数。 (3)修改“Push Button”按钮的属性 第一个按钮:将“String”设置为“加法”,“Fontsize”设置为 15 , “Tag”设置为“addition_pushbutton1”; 第二个按钮:将“String”设置为“减法”,“Fontsize”设置为 15 , “Tag”设置为“subtraction_pushbutton2” ; 第三个按钮:将“String”设置为“乘法”,“Fontsize”设置为 15 , “Tag”设置为“multiplication_pushbutton3” ;
属性名称 BackgroundColor 设置控件背景颜色 说明
Enable
FontName FontSize FontWeight ForegroundColor Position String
设置控件的使用状态,“on”表示选中
设置字体 设置字体大小 设置字体粗细 前景色,控件文本颜色,默认为黑色 控件对象的尺寸和位置 取值为字符串矩阵或数组,定义标题或选项内容
第四个按钮:将“String”设置为“除法”,“Fontsize”设置为 15 , “Tag”设置为“division_pushbutton4” 。
上述属性修改完后,结果如图所示。
4.存储GUIDE输出编辑器界面
单击菜单栏中的保存按钮,在“Save as”对话框中输入文件名 “yunsuanqi”,单击“保存”按钮,则图的界面最上角的名称变为 “yunsuanqi.fig”。此时在当前目录下,MATLAB将自动生成 “yunsuanqi.m”和“yunsuanqi.fig”两个文件。
第7章 图形用户界面(GUI)设计
7.1 GUIDE界面环境
7.2 GUI的创建
7.3 GUI菜单设计 7.4 对话框设计 7.5 综合案例
相关文档
最新文档