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文件. ...
随机推荐
- python之 sqlalchemy
one To many #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @author: zengchunyun & ...
- 封装ajax(二)闭包的形式
(function(){ var $=(function(){ function create(){ if(window.XMLHttpRequest){ var xhr=new XMLHttpReq ...
- Java中线程的生命周期
首先简单的介绍一下线程: 进程:正在运行中的程序.其实进程就是一个应用程序运行时的内存分配空间. 线程:其实就是进程中的一条执行路径.进程负责的是应用程序的空间的标示.线程负责的是应用程序的执行顺序. ...
- PHP AJAX JSONP实现跨域请求使用实例
在之前我写过“php返回json数据简单实例”,“php返回json数据中文显示的问题”和“在PHP语言中使用JSON和将json还原成数组”.有兴趣的童鞋可以看看 今天我写的是PHP AJAX JS ...
- jquery 时间戳与日期转换
(function($) { $.extend({ myTime: { /** * 当前时间戳 * @return <int> unix时间戳(秒) */ CurTime: functio ...
- SQL语法整理
SQL是Structured Query Language的缩写,中文全名为结构化查询语言,是一种用于数据存储,查询,更新和管理的关系数据库系统. SQL语法 创建表 create table tab ...
- [UIScreen mainScreen].bounds.size.width 和self.view.frame.size.width的区别
self.view.frame.size.width在导航栏titleView计算frame时会出现宽度不准确的情况,布局出现问题,[UIScreen mainScreen].bounds.size. ...
- JAVA(IO流)文件复制
package com.am; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOEx ...
- EJB之Timer
EJB Timer 要么: Annotation @Schedule 或者方法前声明@Timeout 要么: 在部署描述中定义timeout-method 如果是使用@Schedule, Timer在 ...
- vert.x学习(六),动态模板与静态文件的结合
这篇学习在动态模板里面引入css,把动态模板与静态文件结合起来使用. 编写DynamicReference.java package com.javafm.vertx.helloworld; impo ...