zoukankan      html  css  js  c++  java
  • MATLAB的GUI

     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
  • 相关阅读:
    [敏杰开发]Beta Scrum Meeting 6
    团队作业第六次--Beta阶段集合随笔
    宅单词——置顶博客
    Beta冲刺总结
    随机组队吐槽
    用户使用调查报告
    Beta冲刺--Day7
    Beta冲刺--Day6
    Beta冲刺--Day5
    Beta冲刺--Day4
  • 原文地址:https://www.cnblogs.com/wangh0802PositiveANDupward/p/4593297.html
Copyright © 2011-2022 走看看