matlab warndlg,MATLAB GUI教程

教程视频链接。

P1 对象的概念

4个函数

get

获取某对象的属性

set

设置某对象的属性

findobj

寻找符合属性要求的对象

allchild

寻找某一对象的子对象

P2 对象操作

h = figure('Units','Normalized',...

'Position',[0.2 0.2 0.5 0.5],...

'Menu','None');

通过使用归一化单位,可无需计算窗口大小,直接设定在窗口中的相对Position。

ha = axes('Parent', h, 'Units', 'Normalized', 'Position', [0.1 0.1 0.8 0.8]);

要画图的话需要先建立坐标系,ha是以h为父对象的坐标系,同时设定其在父对象中的Position。另,前面figure的父对象为整个屏幕。

hl = line('Parent', ha, 'XData', [0:0.01:6], 'YData', sin([0:0.01:6]), 'Color', 'r')

线的父对象为axes,并可设定xy值与颜色。1

2

3

4

5cstring = 'gbkmy';

for k = 1:5

set(hl, 'Color', cstring(k));

pause(3);

end

可以通过set函数改变线条颜色,通过pause设置间隔时间。

P3 底层代码实现GUI

在底层代码实现GUI中,常用的对象有Figure、Axes、Line、Text、Uicontrol等。1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33hf = figure(...

'Units', 'Normalized',...

'Menu', 'none',...

'Color', 'w',...

'Position', [0.1 0.1 0.7 0.5]);

ha = axes(...

'Parent', hf,...

'Units', 'Normalized',...

'Position', [0.1 0.1 0.6 0.8],...

'NextPlot', 'Add',...

'Box', 'on');

hb1 = uicontrol(...

'Style', 'pushbutton',...

'Callback', 'try, delete(allchild(ha));end', ...

'String', 'clear', ...

'Units', 'Normalized', ...

'Position', [0.8 0.2 0.2 0.15]);

hb2 = uicontrol(...

'Style', 'pushbutton',...

'Callback', 'plot(sin([0:0.01:10]))', ...

'String', 'sin', ...

'Units', 'Normalized', ...

'Position', [0.8 0.4 0.2 0.15]);

hb3 = uicontrol(...

'Style', 'pushbutton',...

'Callback', 'plot(cos([0:0.01:10]))', ...

'String', 'cos', ...

'Units', 'Normalized', ...

'Position', [0.8 0.8 0.2 0.15]);

在这一P的程序中,主要介绍了各个对象的常见属性设置。

axes中的NextPlot属性类似于hold on命令,保证在绘制新图的时候,原图不会消除。Box属性就是给axes四个方向均添加坐标轴边框。

uicontrol的一个重要属性就是Callback,即回调函数,表明在按下该模块后,将会进行什么操作。

P4 常用对象介绍1

本讲主要讲述Figure和Axes。

Figure1

2hf = figure;

get(hf);

CloseRequestFcn

默认CloseRequestFcn = closereq1hb = uicontrol('Style', 'pushbutton', 'Callback', 'closereq');

添加一个按钮,将它的回调函数设置为closereq,则可以点击这个按钮后关闭窗口。

Color

默认窗口背景颜色为类似于灰色,可通过1set(hf, 'Color', 'w')

将窗口背景颜色换为白色。

CurrentAxes

默认CurrentAxes = []

若是在figure中添加了子对象,则Current指向该子对象。

MenuBar

默认MenuBar=figure,即默认窗口的菜单栏是有figure的菜单栏的,如果不需要的话,可以设置1set(hf,'Menubar','none')

NumberTitle Name

默认窗口名为Figure1,可以通过语句1set(hf, 'NumberTitle', 'off', 'Name', '演示');

将窗口名更换为‘演示’。

ReSize

默认为on,意思是可以改变窗口大小,可通过语句1set(hf, 'ReSize', 'off');

将窗口固定大小,不可改变。

WindowButtonDownFcn

用鼠标在窗口上点击时,将会触发的效果。如1set(hf, 'WindowButtonDownFcn', 'closereq');

则会产生鼠标点击窗口任意位置时,窗口关闭的效果。

WindowKeyPressFcn

与上一个类似,当窗口为当前窗口时,按下任意一个键,将会触发什么效果。1set(hf, 'WindowKeyPressFcn', 'closereq');

WindowStyle

窗口类型,默认normal,即常规窗口,比如可通过1set(hf, 'WindowStyle', 'modal');

将窗口设置为始终在最前的当前窗口,只有关掉这个窗口才能切换其他。

Visible

窗口是否可见。默认为on。可通过1

2

3

4pause(3);

set(hf, 'Visible', 'off');

pause(3);

set(hf, 'Visible', 'on')

使窗口停留三秒后不可见,再停留三秒后可见。该属性可用于比如主窗口引出子窗口,此时可将主窗口设置为不可见,在关闭子窗口后,再将主窗口设置为可见。

Axes1

2ha = axes;

get(axes)

Box、Color、CurrentPoint、Visible都讲过。

GridLineStyle

网格类型

LineWidth

线的宽度

NextPlot

讲过,可选择replace、add等。

XLim YLim

X、Y坐标轴的范围

XLabel YLabel

X、Y坐标轴的名称

XGrid YGrid ZGrid

每个方向的网格是on还是off

P5 常用对象介绍2

这一P主要讲Line对象的使用。

Line1

2

3hf = figure;

hl = plot([0:10]);

get(hl)

Color

可通过’r’等字符的方式或者[0 0 1]这样的rgb值形式使用set进行改变。

LineStyle

选择直线或者点划线或者其他等等

LineWidth

线宽

Marker

默认Marker=none。可通过1set(hl, 'Marker', 'p');

将线上的每一个点用五角星表示。

MarkerSize

Marker的大小

MarkerEdgeColor

Marker外轮廓线的颜色,默认auto,随线的颜色改变

MarkerFaceColor

Marker填充颜色,默认none,即不填充

XData YData1

2

3hl1 = ezplot('sin(x)');

x = get(hl1,'XData');

y = get(hl1,'YData');

通过ezplot绘制曲线后,可通过get该曲线的XData和YData获取xy值。

P6 常用对象介绍3

这一P主要讲Text、uicontrol对象的使用。

Text

text对象是axes对象的子对象。1

2

3hf = axes;

ht = text(1, 1, '示例');

get(ht)

在位置为[1,1]的地方生成text对象。

Color

字体颜色

BackgroundColor

背景颜色,默认none

Editing

是否可以编辑,默认off

FontAnle

字体倾斜角

FontName

字体类型

FontSize

字体大小

FontUnits

字体单位

FontWeight

字体是否加粗

HorizontalAlignment

字体对齐方式 选择left center right等

Position

位置

Rotation

旋转角度

String

最多用到,字体实际显示内容

Interpreter

用于显示公式等,默认tex,可改为latex等其他类型。

VerticalAlignment

垂直对齐方式,默认middle,可改为top、bottom等。

uicontrol

uicontrol包括pushbutton、edittext、uitable等多种类型,其主要属性为Callback,即回调函数。

Callback

回调函数主要分成如下几步完成

首先写出原始语句1plot(x)

在原始语句基础上加上单引号1'plot(x);'

当原始语句中含有引号时,将原单引号改为两个单引号,并在最外层加一对单引号1'plot(x,y,''r'');'

另外函数内容较多时,也可以使用另外单独的函数作为回调函数。

P7 常用对话框1

本P主要讲解文件打开对话框和文件保存对话框。

uigetfile

uigetfile为文件打开对话框

直接打开

直接调用uigetfile的话,默认打开当前目录,文件类型为matlab文件类型,包括.m、.mat等等。

规定打开文件类型1uigetfile('*.m');

输出参数意义1[a, b, c] = uigetfile('*.txt');

其中,a为文件名,b为文件目录,c为是否选择确定,若点击确定则c为1,若点击取消则c为0,避免实际操作时点击取消,后续程序无法获取读取的内容。1load(fullfile(b,a));

读取文件。此时若按下取消则会报错。因此可修改为1

2

3if c==1

load(fullfile(b,a));

end

uiputfile

uiputfile为文件保存对话框,其参数类型与uigetfile类似。1[a, b, c] = uiputfile('*.m')

P8 常用对话框2

本P主要讲解颜色设置对话框和字体设置对话框。

uisetcolor

uisetcolor弹出窗口,选择具体颜色

设置默认颜色

可以设置默认rgb值1c = uisetcolor(1 0 0]);

也可以通过改变对象颜色1

2h = plot([0:10]);

c = uisetcolor(h);

此时plot的颜色也会根据选择的颜色进行改变。

结合uicontrol1

2figure;

b = uicontrol('Parent', gcf, 'String', '颜色设置', 'Style', 'pushbutton', 'Callback', 'c = uisetcolor; set(b, ''BackgroundColor'', c);');

uisetfont

uisetfont弹出窗口,选择字体类型,大小,是否加粗等。其调用语法和uisetcolor相似。如1

2S = uisetfont(b);

b = uicontrol('Parent', gcf, 'String', '颜色设置', 'Style', 'pushbutton', 'Callback', 'uisetfont(b);', 'Position', [0.2 0.2 0.8 0.8], 'Units', 'Normalized');

P9 常用对话框3

本P讲述进度条的使用。

P10 常用对话框4

本P讲述普通对话框、错误对话框、警告对话框。

dialog

dialog为普通空白对话框,但限定其为当前对话框,只有在其上面任意位置点击后关闭该对话框才可以操作其他。

可以通过dialog自定义对话框。1

2h = dialog('name', '关于...', 'Position', [200 200 200 70]);

uicontrol('parent', h, 'style', 'pushbutton', 'Position', [80 10 50 20], 'String', '确定', 'Callback', 'delete(gcbf)');

建立对话框,其子对象button回调函数为关闭该对话框。

errordlg

errordlg为错误对话框。

warndlg

warndlg为警告对话框。

P11 常用对话框5

本P讲述输入对话框、列表选择对话框、目录对话框。

P12 GUIDE

P13 GUI数据管理

P14 GUI编程实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值