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文件. ...
随机推荐
- 《Storm入门》中文版
本文翻译自<Getting Started With Storm>译者:吴京润 编辑:郭蕾 方腾飞 本书的译文仅限于学习和研究之用,没有原作者和译者的授权不能用于商业用途. 译者序 ...
- *HDU 1385 最短路 路径
Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...
- poj1323-Game Prediction(贪心思想)
贪心的思想:尽量的从最大值找起.然后在剩余之中,再从最大值找起. 一,题意: M个人,每人N张牌,每轮比较谁出的牌大,最大者为胜.现在给定M和N,以及你的牌,要求输出你至少能确保获得几轮的胜利 从&q ...
- CentOS下设置默认JDK
最近在弄Linux,用yum源安装opnjdk-devel版本后,用命令ll /etc/alternatives/java查看,发现指向的是jre目录,而不是jdk,在此设置指向jdk目录. 1. 设 ...
- JAVA入门
编译型语言:高级语言代码经过编译器,一次性翻译为特定系统可以硬件执行的机器码,并包装成该平台所识别的可执行程序. 但是不同平台(系统)的机器码不同,所以编译后的可执行程序无法移植到其他平台.但是因为是 ...
- linux的sysctl基本配置
# Controls the use of TCP syncookiesnet.ipv4.tcp_syncookies = 1 # me write paramnet.ipv4.tcp_timesta ...
- POJ2965
#include <stdio.h> char map[4][4]; int map1[4][4]; int map2[4][4]; int num[16]; int min=1000,n ...
- python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)
最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...
- PCB上过孔via钻孔的直径如何设置 是任意的吗 谈谈PCB钻孔工艺及规格
PCB上过孔via钻孔的直径如何设置,是不是可以随便填入一个直径尺寸就行了?比如我的走线宽度是6mil,那我的via过孔直径也设置为6mil,节约布线空间岂不是更好?这样的设计板厂是否都能按照设计规格 ...
- How to use wget ?
1.How to get conent (not download page) of website? wget <websit> -q -O -