matlab图形界面对象结构
根对象
↓
窗口对象
↓
右键快捷菜单对象 菜单对象
控件对象 坐标轴对象
↓
线对象
文字对象 表面图对象 图像对象
光源对象
三维块对象 矩形对象
\begin{split} & 根对象 \\ & \downarrow \\ &窗口对象 \\ &\downarrow \\ 右键快捷菜单对象\ \ 菜单对象\ \ &控件对象\ \ 坐标轴对象 \\ \downarrow \\ 线对象 \ \ &文字对象\ \ 表面图对象\ \ 图像对象 \\ 光源对象\ \ &三维块对象\ \ 矩形对象 \end{split}
右键快捷菜单对象 菜单对象 ↓线对象 光源对象 根对象↓窗口对象↓控件对象 坐标轴对象文字对象 表面图对象 图像对象三维块对象 矩形对象
根对象的句柄值时, 每个窗口的句柄指可以是正整数.
创建窗口对象以及属性设置
- 新建-> 图窗
- hwin = figure(属性1, 值1, 属性2, 值2,…)
hwin就是handle of the window
显示窗口, 调用hwin的figure方法
figure(hwin)
常用属性
- Color 窗口的界面颜色
- MenuBar 设置窗口菜单条形式
- Name 标题内容
- Units 单位属性 默认为pixels 也有inches centimeters normalized 等
- Position 位置 1✖4向量 前两个value为窗口左下角的坐标, 后两个值分别为窗口的宽度和高度
- Resize on/off 用以设置用户是否可以改变窗口大小
- 常用回调函数
‘CloseRequestFcn’----关闭窗口响应函数
‘KeyPressFcn’----键盘按下响应函数
‘WindowButtonDownFcn’---- 鼠标键按下响应函数
可以用matlab打开很多个窗口, 每个窗口都有各自对应的句柄, 要获得当前窗口的句柄以对当前窗口进行操作, 可以用gcf函数, gcf就是get current figure
图形窗口的属性可以在该窗口的’视图’—>'属性检查器’中获得
对象属性的读取和修改
get函数和set函数
set(对象句柄, 属性1, 值1, 属性2, 值2,…)
如果调用set时, 只写属性1, 而没有写值1, 则会返回属性1所有可能的值(因为系统以为你不知道怎么写, 就给你提示)
比如
h = set(gcf, 'Visible')
返回{‘on’, ‘off’}
采用get可以得出某个对象, 比如窗口, 的有关信息
get(对象句柄名, 属性)
gwin = figure('Visible', 'off');
set(gwin,...
'Color', [1, 0, 0],...
'Position', [100, 200, 300, 300],...
'Name', 'sadsadas',...
'NumberTitle', 'off',...
'MenuBar', 'figure',...
'KeyPressFcn',...
'disp("asd")');
set(gwin, 'Visible', 'on')
或者
gwin = figure(...
'Color', [1, 0, 0],...
'Position', [100, 200, 300, 300],...
'Name', 'sadsadas',...
'NumberTitle', 'off',...
'MenuBar', 'figure',...
'KeyPressFcn',...
'disp("asd")');
简单对话框
- 消息显示
msgbox(字符串, 标题)
msgbox('显示界面', '这是标题');
handle_msg = msgbox({'第一行', '第二行'}, '这是标题');
set(handle_msg,...
'Position', [0, 0, 600, 600]...
)
- 警告/错误 warndlg() errordlg()
h = warndlg({'警告:现在电脑快坏了',...
'请重试'},...
'这是一个警告提示框')
h = errordlg({'错误:现在电脑坏了',...
'请重试'},...
'这是一个错误提示框')
- 问答框 questdlg(问题字符串, 标题)
该函数返回的key分别为字符串----‘Yes’或者’no’或者’cancel’’
huida = questdlg('你要推出吗', '这是一个问答框',...
'别', '啊这',...
'啊这'...
);%最后的'啊这'表示'啊这'时默认选择
- 变量输入框 inputdlg
格式为 变量 = inputdlg({提示1, …, 提示i, …,提示n}, 标题栏, 行数, 默认值);
元胞数组是一种包含名为元胞的索引数据容器的数据类型,其中的每个元胞都可以包含任意类型的数据。元胞数组通常包含文本列表、文本和数字的组合或者不同大小的数值数组。通过将索引括在圆括号 () 中可以引用元胞集。使用花括号 {} 进行索引来访问元胞的内容。
例子 传递函数输入对话框
hints = {'输入分子的系数', '输入分母的系数'};
title = '传递函数输入框';
default_values = {'1', '[1, 2]'};% 输入是字符串
transf = inputdlg(hints, title, 1, ...
default_values...
);
num = eval(T{1});den = eval(T{2});
G = tf(num,den);