• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

MATLAB的GUI

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 1 % 常使用的对象查看和设置函数
 2 % 1.get、set函数
 3 get(0) % 获得句柄值为0的对象的属性,即显示器对象属性
 4 
 5 plot([0:10]); % 绘制一幅图
 6 title(\'示例\'); % 增加text对象
 7 
 8 % 获得figure的所有子对象
 9 allchild(gcf)
10 
11 % 查看子对象类型
12 get(ans(1)) % type属性可以看到子对象类型
13 
14 % 获得静态文本“示例”的句柄并进行设置
15 h = findobj(allchild(gca), \'String\', \'示例\');
16 set(h, \'FontSize\', 20, \'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])

GUI 
 1 % 对象操作示例
 2 % h= figure ; get(h);
 3 %获取能够使用的句柄
 4 hf = figure(\'Units\', \'Normalized\', ...
 5     \'Position\', [0.2 0.3 0.5 0.5], ...
 6     \'Menu\', \'none\');
 7 
 8 ha = axes(\'Parent\', hf, \'Units\', \'Normalized\', ...
 9     \'Position\', [0.1 0.1 0.8 0.8]);
10 
11 hl = line(\'Parent\', ha, \'XData\', [0:0.01:7], ...
12     \'YData\', sin([0:0.01:7]), \'Color\', \'r\', ...
13     \'LineWidth\', 3);
14 
15 cstring = \'gbkmy\';
16 
17 for k = 1:5
18     pause(3);
19     set(hl, \'Color\', cstring(k));
20 end
2
 1 % 底层代码实现GUI
 2 hf = figure(...
 3     \'Units\', \'Normalized\', ...
 4     \'Position\', [0.2 0.2 0.6 0.5], ...
 5     \'Menu\', \'none\', ...
 6     \'Color\', \'w\');
 7 
 8 ha = axes(\'Parent\', hf, ...
 9     \'Units\', \'Normalized\', ...
10     \'Position\', [0.1 0.1 0.6 0.8], ...
11     \'Box\', \'off\', ...
12     \'NextPlot\', \'add\');
13 
14 hb1 = uicontrol(\'Parent\', hf, ...
15     \'Units\', \'Normalized\', ...
16     \'Position\', [0.75 0.2 0.15 0.1], ...
17     \'Style\', \'pushbutton\', ...
18     \'String\', \'sin\', ...
19     \'Callback\', \'plot(sin([0:0.01:6]))\');
20 
21 hb2 = uicontrol(\'Parent\', hf, ...
22     \'Units\', \'Normalized\', ...
23     \'Position\', [0.75 0.4 0.15 0.1], ...
24     \'Style\', \'pushbutton\', ...
25     \'String\', \'cos\', ...
26     \'Callback\', \'plot(cos([0:0.01:6]))\');
27 
28 hb3 = uicontrol(\'Parent\', hf, ...
29     \'Units\', \'Normalized\', ...
30     \'Position\', [0.75 0.6 0.15 0.1], ...
31     \'Style\', \'pushbutton\', ...
32     \'String\', \'clear\', ...
33     \'Callback\', \'try,delete(allchild(ha));end\');
GUI 3
 1 % 常用对象的属性
 2 % % 1.figure
 3 % hf = figure;
 4 % get(hf);
 5 % 
 6 % % 改变颜色
 7 % set(hf, \'Color\', \'w\');
 8 % set(hf, \'Menubar\', \'none\');
 9 % set(hf, \'NumberTitle\', \'off\', \'Name\', \'演示\');
10 % set(hf, \'ReSize\', \'off\');
11 % pause(3)
12 % set(hf, \'Visible\', \'off\');
13 % pause(3)
14 % set(hf, \'Visible\', \'on\');
15 % 
16 % set(hf, \'WindowStyle\', \'modal\');
17 % 
18 % set(hf, \'WindowKeyPressFcn\', \'closereq\');
19 % 
20 % set(hf, \'WindowButtonDownFcn\', \'closereq\');
21 % 
22 % hb = uicontrol(\'Style\', \'pushbutton\', \'Callback\', \'closereq\');
23 
24 % 2.axes
25 ha = axes;
26 get(ha)
27 set(ha, \'NextPlot\', \'add\');
28 plot([0:100]);
29 
30 plot(sin(0:0.01:3));
GUI 4
 1 % text
 2 hf = axes;
 3 ht = text(1, 1, \'示例\');
 4 
 5 get(ht)
 6 
 7 text(\'String\', \'\int_0^x dF(x)\', \'Position\', [0.5 .5]);
 8 
 9 text(\'interpreter\', \'latex\', \'String\', \'$$ \int_0^x dF(x) $$\', \'Position\', [0.2 .2]);
10 
11 % 原始的语句写出来
12 plot(x);
13 % 在原始语句两遍加上单引号
14 \'plot(x);\'
15 % 当原始语句中含有引号,那么将原始的单引号都改为两个单引号,然后再最外层加上一对单引号
16 \'plot(x, y, \'\'r\'\');\'
GUI 5
 1 % text
 2 hf = axes;
 3 ht = text(0.1, 1, \'示例\');
 4 
 5 get(ht)
 6 
 7 text(\'String\', \'\int_0^x dF(x)\', \'Position\', [0.5 .5]);
 8 
 9 text(\'interpreter\', \'latex\', \'String\', \'$$ \int_0^x dF(x) $$\', \'Position\', [0.2 .2]);
10 
11 % 原始的语句写出来
12 plot(x);
13 % 在原始语句两遍加上单引号
14 \'plot(x);\'
15 % 当原始语句中含有引号,那么将原始的单引号都改为两个单引号,然后再最外层加上一对单引号
16 \'plot(x, y, \'\'r\'\');\'
GUI6
 1 % uigetfile
 2 uigetfile
 3 
 4 doc uigetfile
 5 
 6 % 规定打开文件类型
 7 uigetfile(\'*.m\');
 8 
 9 % 输出参数意义
10 [a, b, c] = uigetfile(\'*.m\');
11 
12 [a, b, c] = uigetfile(\'*.txt\');
13 if c == 1
14     load(fullfile(b, a));
15 end
16 
17 uigetfile(\'*.m\', \'实例\', \'default.m\');
18 
19 % uiputfile
20 uiputfile
21 
22 doc uiputfile
23 [a, b, c] = uiputfile(\'*.m\');
GUI 7
 1 % 颜色设置对话框
 2 uisetcolor
 3 
 4 doc uisetcolor
 5 
 6 c = uisetcolor;
 7 
 8 c = uisetcolor([1 0 0]);
 9 
10 h = plot([0:10]);
11 c = uisetcolor(h);
12 
13 figure;
14 b = uicontrol(\'Parent\', gcf, \'String\', \'颜色设置\', \'Style\', \'pushbutton\', \'Callback\', ...
15     \'c = uisetcolor; set(b, \'\'BackgroundColor\'\', c);\');
16 
17 % 字体设置对话框
18 uisetfont
19 
20 doc uisetfont
21 
22 S = uisetfont(b);
23 
24 figure;
25 b = uicontrol(\'Parent\', gcf, \'String\', \'颜色设置\', \'Style\', \'pushbutton\', \'Callback\', ...
26     \'uisetfont(b);\', \'Position\', [0.2 .2 0.8 0.8], \'Units\', \'Normalized\');
GUI 8
 1 % 进度条
 2 % waitbar
 3 h = waitbar(0, \'实例\');
 4 get(h)
 5 
 6 % 获得进度条的子对象
 7 get(get(h, \'Children\'))
 8 
 9 ha = get(h, \'Children\');
10 
11 % 获得坐标轴子对象的子对象内容
12 get(ha, \'Children\')
13 
14 get(ans(1))
15 get(ans(2))
16 
17 hrand = waitbar(0.3, \'颜色\')
18 
19 ha1 = get(hrand, \'Children\');
20 hac = get(ha1, \'Children\');
21 hapa = findall(hac, \'Type\', \'patch\');
22 set(hapa, \'Facecolor\', \'k\')
23 
24 doc waitbar
25 
26 waitbar(0.5, hrand)
GUI9

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap