MATLAB的GUI
% 常使用的对象查看和设置函数
% .get、set函数
get() % 获得句柄值为0的对象的属性,即显示器对象属性 plot([:]); % 绘制一幅图
title('示例'); % 增加text对象 % 获得figure的所有子对象
allchild(gcf) % 查看子对象类型
get(ans()) % type属性可以看到子对象类型 % 获得静态文本“示例”的句柄并进行设置
h = findobj(allchild(gca), 'String', '示例');
set(h, 'FontSize', , 'FontWeight', 'bold');
GUI 1
findobj:特殊属性的图形对象 (doc findobj)
语法:
1.findobj:
findobj返回根对象的句柄和所有子对象(findobj returns handles of the root object and all its descendants without assigning the result to a variable.)
2.h = findobj:
返回根对象的句柄和所有子对象
3.h = findobj('PropertyName',PropertyValue,...)
返回所有属性名为‘PropertyName’,属性值为'PropertyValue'的图形对象的句柄。可以指定多个属性/值对。
4.h = findobj('PropertyName',PropertyValue,'-logicaloperator', PropertyName',PropertyValue,...)
-logicaloperator可以取值:
-and
-or
-xor
-not
等
5.h = findobj('-regexp','PropertyName','regexp',...)
属性名可以使用正则表达式
6.h = findobj('-property','PropertyName')
如果存在‘PropertyName’这个属性名,就返回此图形句柄
7.h = findobj(objhandles,...)
限制搜索范围为objhandles和他们的子图中
8.h = findobj(objhandles,'-depth',d,...)
指定搜索深度,深度参数'd'控制遍历层数,d为inf表示遍历所有层,d为0等同d='flat'
9.h = findobj(objhandles,'flat','PropertyName',PropertyValue,...)
'flat'限制搜索范围只能是当前层,不能搜索子图。
如果句柄指向一个不存在的图形,findobj返回一个错误。
findobj正确匹配任何合法属性值,例如:
findobj('Color','r')
找到所有color值为红的对象。
为了寻找满足指定条件的额handle对象,我们可以使用handle.findobj。
例子:
在当前坐标下查找所有直线对象:
h = findobj(gca,'Type','line') %gca为当前坐标的句柄
查找Label属性设为'foo'和String设为'bar'的所有对象:
h = findobj('Label','foo','-and','String','bar');
查找String不为'foo'也不为'bar'的所有对象:
h = findobj('-not','String','foo','-not','String','bar');
h = findobj('String','foo','-and','Tag','button one',...
'-and','-not',{'Color','red','-or','Color','blue'})
Find all objects for which you have assigned a value to the Tag property (that is, the value is not the empty string ''):
h = findobj('-regexp','Tag','[^'']')
Find all children of the current figure that have their BackgroundColor property set to a certain shade of gray ([.7 .7 .7]). This statement also searches the current figure for the matching property value pair.
h = findobj(gcf,'-depth',1,'BackgroundColor',[.7 .7 .7])
% 对象操作示例
% h= figure ; get(h);
%获取能够使用的句柄
hf = figure('Units', 'Normalized', ...
'Position', [0.2 0.3 0.5 0.5], ...
'Menu', 'none'); ha = axes('Parent', hf, 'Units', 'Normalized', ...
'Position', [0.1 0.1 0.8 0.8]); hl = line('Parent', ha, 'XData', [:0.01:], ...
'YData', sin([:0.01:]), 'Color', 'r', ...
'LineWidth', ); cstring = 'gbkmy'; for k = :
pause();
set(hl, 'Color', cstring(k));
end
2
% 底层代码实现GUI
hf = figure(...
'Units', 'Normalized', ...
'Position', [0.2 0.2 0.6 0.5], ...
'Menu', 'none', ...
'Color', 'w'); ha = axes('Parent', hf, ...
'Units', 'Normalized', ...
'Position', [0.1 0.1 0.6 0.8], ...
'Box', 'off', ...
'NextPlot', 'add'); hb1 = uicontrol('Parent', hf, ...
'Units', 'Normalized', ...
'Position', [0.75 0.2 0.15 0.1], ...
'Style', 'pushbutton', ...
'String', 'sin', ...
'Callback', 'plot(sin([0:0.01:6]))'); hb2 = uicontrol('Parent', hf, ...
'Units', 'Normalized', ...
'Position', [0.75 0.4 0.15 0.1], ...
'Style', 'pushbutton', ...
'String', 'cos', ...
'Callback', 'plot(cos([0:0.01:6]))'); hb3 = uicontrol('Parent', hf, ...
'Units', 'Normalized', ...
'Position', [0.75 0.6 0.15 0.1], ...
'Style', 'pushbutton', ...
'String', 'clear', ...
'Callback', 'try,delete(allchild(ha));end');
GUI 3
% 常用对象的属性
% % .figure
% hf = figure;
% get(hf);
%
% % 改变颜色
% set(hf, 'Color', 'w');
% set(hf, 'Menubar', 'none');
% set(hf, 'NumberTitle', 'off', 'Name', '演示');
% set(hf, 'ReSize', 'off');
% pause()
% set(hf, 'Visible', 'off');
% pause()
% set(hf, 'Visible', 'on');
%
% set(hf, 'WindowStyle', 'modal');
%
% set(hf, 'WindowKeyPressFcn', 'closereq');
%
% set(hf, 'WindowButtonDownFcn', 'closereq');
%
% hb = uicontrol('Style', 'pushbutton', 'Callback', 'closereq'); % .axes
ha = axes;
get(ha)
set(ha, 'NextPlot', 'add');
plot([:]); plot(sin(:0.01:));
GUI 4
% text
hf = axes;
ht = text(, , '示例'); get(ht) text('String', '\int_0^x dF(x)', 'Position', [0.5 .]); text('interpreter', 'latex', 'String', '$$ \int_0^x dF(x) $$', 'Position', [0.2 .]); % 原始的语句写出来
plot(x);
% 在原始语句两遍加上单引号
'plot(x);'
% 当原始语句中含有引号,那么将原始的单引号都改为两个单引号,然后再最外层加上一对单引号
'plot(x, y, ''r'');'
GUI 5
% text
hf = axes;
ht = text(0.1, , '示例'); get(ht) text('String', '\int_0^x dF(x)', 'Position', [0.5 .]); text('interpreter', 'latex', 'String', '$$ \int_0^x dF(x) $$', 'Position', [0.2 .]); % 原始的语句写出来
plot(x);
% 在原始语句两遍加上单引号
'plot(x);'
% 当原始语句中含有引号,那么将原始的单引号都改为两个单引号,然后再最外层加上一对单引号
'plot(x, y, ''r'');'
GUI6
% uigetfile
uigetfile doc uigetfile % 规定打开文件类型
uigetfile('*.m'); % 输出参数意义
[a, b, c] = uigetfile('*.m'); [a, b, c] = uigetfile('*.txt');
if c ==
load(fullfile(b, a));
end uigetfile('*.m', '实例', 'default.m'); % uiputfile
uiputfile doc uiputfile
[a, b, c] = uiputfile('*.m');
GUI 7
% 颜色设置对话框
uisetcolor doc uisetcolor c = uisetcolor; c = uisetcolor([ ]); h = plot([:]);
c = uisetcolor(h); figure;
b = uicontrol('Parent', gcf, 'String', '颜色设置', 'Style', 'pushbutton', 'Callback', ...
'c = uisetcolor; set(b, ''BackgroundColor'', c);'); % 字体设置对话框
uisetfont doc uisetfont S = uisetfont(b); figure;
b = uicontrol('Parent', gcf, 'String', '颜色设置', 'Style', 'pushbutton', 'Callback', ...
'uisetfont(b);', 'Position', [0.2 . 0.8 0.8], 'Units', 'Normalized');
GUI 8
% 进度条
% waitbar
h = waitbar(, '实例');
get(h) % 获得进度条的子对象
get(get(h, 'Children')) ha = get(h, 'Children'); % 获得坐标轴子对象的子对象内容
get(ha, 'Children') get(ans())
get(ans()) hrand = waitbar(0.3, '颜色') ha1 = get(hrand, 'Children');
hac = get(ha1, 'Children');
hapa = findall(hac, 'Type', 'patch');
set(hapa, 'Facecolor', 'k') doc waitbar waitbar(0.5, hrand)
GUI9
MATLAB的GUI的更多相关文章
- 基于MATLAB的GUI(Graphical User Interface)音频实时显示设计
摘要:本文章的设计主要讲基于matlab的gui音频实时显示设计,此次设计的gui相当于一个简洁的音乐播放器,界面只有”录音“和”播放“两个控件,哈哈,够简洁吧.通过”录音“按钮可以实现声音从电脑的声 ...
- [原创]Matlab之GUI生成EXE文件
近期因为项目需要,简化流程,写了一些Matlab程序,并配备上了GUI界面使其简单易用.然后问题来了,可移植性.使用Matlab生成EXE文件(可以封装很多的function),然后在一台安装有Mat ...
- Matlab的GUI参数传递方式总结
MATLAB GUI传递方式 1.全局变量: 2.作为函数的参数传递: 3.利用控件的userdata数据: 4.为handles结构体添加新字段: 5.setappdata函数为句柄添加数据: 6. ...
- MATLAB 下GUI的学习
做界面,然后在对应程序里做调用. 0.打开文件:命令行输入 guide 或者 新建——图形用户界面1.文件-预设可以对字体.代码等进行设置.2.工具-GUI选项可以改变行为大小. 3,添加轴,面板,按 ...
- 基于matlab的GUI界面开发软件
matlab工具deploytool编译M为可执行程序 http://blog.sina.com.cn/s/blog_60f8483a0100gnsm.html
- matlab改变GUI和figure左上角图标的方法,并生成exe文件
1. GUI左上角图标的更改,假设GUI的Tag为figure1,在其OpeningFcn里添加h = handles.figure1; %返回其句柄newIcon = javax.swing.Ima ...
- matlab学习GUI可调的界面窗口
创建一个GUI界面,在此依然利用GUI_01的窗口来演示 发现它的最大化窗口不可调 在GUI绘制中,工具--->选择GUI选项---->选择第二个成比例 再运行就可以调控大小了
- matlab学习GUI的基本操作
在命令行窗口输入guide 单击确定后出现,可以选择控件来设计,然后可以保存 右击可以查看控件的所有属性 举一个简单的GUI实例---实现数据的传输 添加可编辑文本框 更改字体大小,string默认的 ...
- matlab GUI封装exe文件
学习matlab过程中,有时有些程序处理数据时老是看着代码,也会觉得疲倦,那么要试一试matlab的GUI吗?我就是这么使用matlab的GUI制作一个小程序,并且使用matlab封装成了exe文件. ...
随机推荐
- ANSI_NULLS和QUOTED_IDENTIFIER
这些是 SQL-92 设置语句,使 SQL Server 2000/2005 遵从 SQL-92 规则. 当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必 ...
- 李洪强iOS经典面试题143-绘图与动画
李洪强iOS经典面试题143-绘图与动画 绘图与动画 CAAnimation的层级结构 CAPropertyAnimation是CAAnimation的子类,也是个抽象类,要想创建动画对象,应该使 ...
- java基础总结——开篇
工作三年多了,一直没时间静下心来好好总结,2016年马上就要过去了.也算是给自己在新一年的一个任务吧!总结java基础,然后再总结javaweb.纯属个人学习总结,总结过程中如有模糊的地方,望各位看官 ...
- [转载]ERP实施40问 60分钟外行变专家
http://www.chinaodoo.net/thread-389-1-1.html 在多年的实践中,结合自身经验和多年的理论积累,总结出有关ERP实施的最关键的40个问题,以问答的形式,让您在最 ...
- CodeForces 676D代码 哪里有问题呢?
题目: http://codeforces.com/problemset/problem/676/D code: #include <stdio.h> #define MAXN 1001 ...
- SQL的四种连接-左外连接、右外连接、内连接、全连接
今天在看一个遗留系统的数据表的时候发现平时查找的视图是FULL OUT JOIN的,导致平时的数据记录要进行一些限制性处理,其实也可以设置视图各表为右外连接并在视图上设置各列的排序和筛选条件就可以达到 ...
- static 使用要注意的地方
protected static string headimg = string.Empty; 这里用到 static ,下面如果这样写 object himg = DBUtility.DbH ...
- sql server 删除表及表的相关视图、存储过程、方法
注意:进行此操作前需先备份数据库,免得删错无法恢复 1.查询 SELECT Name ,type FROM SysObjects WHERE name LIKE '%cases%' 2.拼接语句 SE ...
- tomcat由浅入深
零.服务器.Servlet容器.web容器 Servlet容器:能够运行Servlet的环境叫做Servlet容器 web容器:能够运行web应用的环境就叫做web容器 weblogic websph ...
- Mssql迁移至Oracle 查询优化
针对Oracle的查询优化 a.避免使用nclob类型字段,可以通过排除此类型的字段,优化查询b.避免对字段进行NULL值判断,如:SELECT * FROM TABLE WHERE COL IS ...