图形用户界面(Graphical User Interface,GUI):

用户与计算机进行信息交流的窗口。

设计图形用户界面的方法
调用建立用户界面控件的函数
使用MATLAB提供的GUIDE工具进行可视化设计

控件对象及其操作

(1)常用控件
输入和输出类控件:编辑框、静态文本、列表框、滑动条等。
实施确认、选择操作类控件:按钮、双位按钮、单选按钮、复选框等
(2)建立控件对象
函数uicontrol用于建立控件对象,其调用格式为:

句柄变量=uicontrol(图形窗口句柄,属性1,属性值1,属性2,属性值2,…)

其中,属性及其取值决定了控件的特征。若省略图形窗口句柄,默认
当前图形窗口建立控件对象。

(3) 控件对象的基本控制属性
Style属性:定义控件对象的类型,例如‘pushbutton’表示按钮对 象,'edit’表示编辑框,等等。
String属性:定义控件对象的说明文字。
Tag属性:标识控件对象。
Enable属性:控制控件对象是否可用。
Position属性:定义控件对象的位置,其取值形式为[x,y,w,h]。
Callback属性:其属性值是描述命令的字符串或函数句柄,当选中控 件时,系统将自动执行字符串描述的命令或调用句柄所代表的函数, 实施相关操作。
(4)回调函数
回调函数定义对象怎样处理信息并响应某事件。
回调函数的定义格式:
function 函数名(source, eventdata) …… end
其中,参数source是发生事件的源控件对象句柄,eventdata存储事件数据。
(5)例子1
例1 在图形窗口中建立三个按钮对象,当单击按钮时分别绘制正弦曲 线、显示或隐藏坐标轴的网格、清除坐标轴的图形。

  ha= axes('Units','pixels','Position',[40,40,360,360]);
ptgrid=uicontrol('Style','pushbutton',...'String','网格', 'Position', [450,120,48,20],...'Callback','grid' );
btncla = uicontrol('Style', 'pushbutton', ...'String', '清除','Position', [450,80,48,20],...'Callback','cla' );
btnplot = uicontrol('Style', 'pushbutton', ...'String','绘图','Position', [450,160,48,20]);
%设置“绘图”按钮的Callback属性值是plot_sin函数句柄。
btnplot.Callback=@plot_sin;%新建回调函数文件plot_sin.m
function plot_sin(source, callbackdata)t=-pi:pi/20:pi;plot(t,sin(t));
end

菜单对象

(1)建立菜单对象
uimenu函数用于创建、设置、修改菜单。
建立一级菜单项的函数调用格式为:
一级菜单项句柄=uimenu(图形窗口句柄,属性,属性值1,属性2,属性值2,…)
建立子菜单项的函数调用格式为:
子菜单项句柄=uimenu(上级菜单项句柄,属性1,属性值1,属性2,属性值2,…)

(2)菜单属性
Label属性:定义菜单项的名字。
Accelerator属性:定义菜单项的快捷键。
Checked属性:指示菜单项是否已选中。
Enable属性:控制菜单项的可选择性。
Separator属性:在菜单项上方添加一条分隔线。

(3)例子2
在例1的界面中添加“图形选项”菜单项,其中包括一个二级菜 单项“线型”,其下又有3个子菜单项,分别为“实线”、“虚线”、 “双划线”。

首先运行例1的程序生成图形界面,再 运行例2程序,在界面中添加“图形选 项”菜单项,这时“线型”菜单项不 可用,单击“绘图”按钮绘制正弦函 数曲线后“线型”菜单项变为可用, 这时可以改变线型,例如双划线.

新建一个m文件第一次运行他
ha= axes('Units','pixels','Position',[40,40,360,360]);
ptgrid=uicontrol('Style','pushbutton',...'String','网格', 'Position', [450,120,48,20],...'Callback','grid' );
btncla = uicontrol('Style', 'pushbutton', ...'String', '清除','Position', [450,80,48,20],...'Callback','cla' );
btnplot = uicontrol('Style', 'pushbutton', ...'String','绘图','Position', [450,160,48,20]);
%设置“绘图”按钮的Callback属性值是plot_sin函数句柄。
btnplot.Callback=@plot_sin;新建一个m文件第二次运行他
hopt=uimenu(gcf,'Label','图形选项','Accelerator','L');
hLStyle=uimenu(hopt,'Label','线型','Tag','LStyle', 'Enable','off');
hL_Solid=uimenu(hLStyle,'Label','实线',...'Tag','Solid','Callback', @MLine_Type);
hL_Dotted=uimenu(hLStyle,'Label','虚线',...'Tag','Dotted','Callback', @MLine_Type);
hL_Dashed=uimenu(hLStyle,'Label','双划线',...'Tag','Dashed','Callback', @MLine_Type);新建回调函数文件MLine_Type.m
function MLine_Type(source,callbackdata)hline=findobj('Type','line');if strcmp(source.Tag,'Solid' )==1hline.LineStyle='-';elseif strcmp(source.Tag,'Dotted' )==1hline.LineStyle=':';  elseif strcmp(source.Tag,'Dashed' )==1hline.LineStyle='--';   end
end修改回调函数文件plot_sin.m
function plot_sin(source, callbackdata)t=-pi:pi/20:pi;plot(t,sin(t));h1=findobj('Tag','LStyle');h1.Enable='On';    %使得 “线型”菜单项可用
end

本人觉得一些常用的函数

gcf返回当前Figure对象的句柄值

h = findobj(‘PropertyName’,PropertyValue,…)
返回所有属性名为‘PropertyName’,属性值为’PropertyValue’的图形对象的句柄。可以指定多个属性/值对

在当前坐标下查找所有直线对象:
h = findobj(gca,‘Type’,‘line’)  %gca为当前坐标的句柄

matlab自带用户界面设计工具GUIDE

GUIDE:Graphical User Interface Development Environment

图形界面设计窗口

(1)打开GUIDE
在MATLAB命令行窗口输入guide命令。
在MATLAB主窗口中选择“主页”选项卡,单击工具栏的“新建”命令按
钮,再选择“应用程序”下的GUIDE命令

(2)图形用户界面设计模板
Blank GUI (Default)
GUI with Uicontrols
GUI with Axes and Menu
Modal Question Dialog

(3)图形用户界面设计窗口
图形用户界面设计窗口由菜单栏、 工具栏、组件选项板、界面设计区、状 态栏等部分组成。

(4)图形用户界面设计工具
对齐对象工具
菜单编辑器
Tab键顺序编辑器
工具栏编辑器
代码编辑器
对象属性检查器
对象浏览器

对象属性检查器是用于检查/修改对象属性的工具。

菜单编辑器
菜单编辑器构成
工具栏
菜单列表
菜单属性面板
图形窗口的MenuBar属性
figure
none
菜单编辑器 添加自定义菜单
新建菜单 新建菜单项 设置菜单项属性

对象浏览器
对象浏览器用于查看图形对象和展示界面的组织架构

回调属性与回调函数
(1)回调属性
Callback属性:按钮类控件和菜单项的单击事件的默认回调属性。
CreateFcn属性:定义创建图形对象的响应。
DeleteFcn属性:定义取消图形对象的响应。
ButtonDownFcn属性:定义单击鼠标键按下的响应。
KeyPressFcn属性:定义键盘键按下的响应。
SelectionChangeFcn属性:定义改变选项的响应

(2)回调函数框架
function 对象标识_Callback(hObject, eventdata, handles)
其中,hObject为发生事件的源控件,eventdata为事件数据,handles保
存图形界面中所有对象的句柄。

%“绘图”按钮的Callback函数
function pushbutton1_Callback(hObject, eventdata, handles)
A=eval(handles.editfz.String);
f=eval(handles.editpl.String)/50;
theta=eval(handles.editxj.String)/180*pi;
x=linspace(0,2*pi,60);
if handles.OpSin.Value==1y=A*sin(f*x+theta);
elsey=A*cos(f*x+theta);
end
plot(x,y);
handles.PStyle.Enable='On';%“实线”菜单项的回调函数
function Solid_Callback(hObject, eventdata, handles)
hline=findobj('Type','line');
hline.LineStyle='-';
handles.Solid.Checked='On';
handles.Dotted.Checked='Off';
handles.Dashed.Checked='Off';%“红”菜单项的回调函数
function r_Callback(hObject, eventdata, handles)
hline=findobj('Type','line');
hline.Color='r';
handles.r.Checked='On';
handles.g.Checked='Off';
handles.b.Checked='Off';

matlab GUI 设计 自学笔记相关推荐

  1. matlab写函数进行坐标正反算,坐标正反算的MATLAB GUI设计与应用

    第 30 卷 第 4 期 2018 年 10 月 黄河水利职业技术学院学报 JournalofYellowRiverConservancyTechnicalInstitute Vol.30 No.4 ...

  2. MATLAB GUI设计 多个选项卡/子页面

    MATLAB GUI设计 多个选项卡/子页面 需要使用GUI Layout Toolbox,文末附下载链接 % 创建一个figure f = figure('MenuBar','none','Tool ...

  3. matlab gui .fig,精通MATLAB GUI设计 matlab gui 图形处理 图形用户界面(Graphical User Interface - 下载 - 搜珍网...

    压缩包 : xunzai.com_陈垚光<精通MATLAB GUI设计>.rar 列表 陈垚光<精通MATLAB GUI设计>/第10章/exm10.m 陈垚光<精通MA ...

  4. MATLAB GUI设计——绘图

    MATLAB GUI设计--绘图 讨论两个问题,将MATLAB绘图保存为适合于论文使用的格式,绘图的一些技巧.也许我们都这样的做过,MATLAB所绘制的图形要保存为图片,一般是使用截图的方式,或者使用 ...

  5. Python GUI设计 tkinter 笔记

    # <Python GUI设计 tkinter菜鸟编程>学习笔记,可直接执行代码 # 排版混乱,可设置Tab缩进为2个空格查看 # 此处整个笔记为python程序,可直接运,生成各类GUI ...

  6. MATLAB GUI设计 图像处理基本操作(一)

    最近在做图像处理的有关课设,想起以前学过的以冈萨雷斯版为教材的数字图像处理的内容和基于MATLAB GUI编程的代码,在此浅浅记录一下. 一.GUI打开与基本操作 >>guide 在命令行 ...

  7. MATLAB GUI设计如何弹出新界面?

    本意是想要设计一个图像处理系统,在该系统中点击按钮可以跳转到另一个GUI界面,在该界面设计后将所设置参数引回到原有的GUI界面,并在该界面进行显示处理好的图像.各位如果有好的结果的话麻烦江湖救急!或者 ...

  8. matlab gui设计 一个按钮两个功能(开始和暂停)

    matlab 设计Gui界面,想通过一个按钮实现两个通功能,点一下是开始,再点击一下是暂停,再再点击又是开始 要求:开始按钮,点击之后,程序开始运行,此时按钮变为暂停按钮 再次点击,程序暂停,按钮变为 ...

  9. Matlab GUI设计

    Matlab设计图形用户界面 设计的比较简易,通过修改对象属性代码等可以更精细. function varargout = Guide2(varargin) % Simple example of M ...

最新文章

  1. Paddle广播 (broadcasting)
  2. ubuntu 安装gcc 4.8.2
  3. 域对抗自适应算法的设计、不足与改进(Domain Adversarial Learning)
  4. WPS for Linux【Debian、Ubuntu、Deepin、Linux Mint】字体缺失解决【批量字体安装】
  5. .net 常见异常及其翻译
  6. python namespace unique_Python使用uuid库生成唯一标识ID
  7. 续——《RedHat/Fedora等非ubuntu的Linux系统星空极速netkeeper拨号上网 》
  8. 固定布局(fixed layout)、流体布局(fluid layout)、弹性布局(elastic layout)、响应布局(responsive layout)理解和技巧归纳
  9. leetcode题解172-阶乘后的零
  10. 物联网未来已来,新零售已处在巨变前夕
  11. python 笔记 冒泡排序
  12. atiny_log | LiteOS 物联网操作系统中的日志打印组件使用分享
  13. java代码自动生成,在线生成非常好用收藏
  14. 前期交互流程(PTES的第一步)
  15. 位运算与字母大小写转换
  16. [VK Cup 2016 - Round 3] - D Bearish Fanpages
  17. 一篇通读网贷产品的身份核验设计
  18. Italvibras M3/4-S02振动电机M3/20-S02 3/100-S02 3/200-S02 MVSI 3/300-S02振动电机
  19. sql server 2008 r2 忘记sa密码, 没有window账户登录, 解决办法
  20. 伟景行Citymaker三维Gis加载FDB数据

热门文章

  1. 外部服务发现之 ingress(一) traefik 的安装使用
  2. 战双帕弥什自抽号怎么使用_战双帕弥什新S冰露怎么玩《战双帕弥什》新S冰露玩法技巧...
  3. php windows 64下载地址,VSCode Windows 64位 下载
  4. java @valid 密码不一致_一个成熟的Java项目如何优雅地处理异常
  5. docker 获取宿主机ip_Docker基础修炼6——网络初探及单机容器间通信
  6. linux 内核io操作,关于Linux内核中的异步IO的使用
  7. 技术员联盟win11系统64位专业版镜像v2021.08
  8. 腾讯视频中如何把视频进行收藏
  9. win7系统笔记本电脑开机蓝屏怎么办
  10. 小学认识计算机硬件ppt,认识计算机硬件课件.ppt