我是靠谱客的博主 腼腆发夹,最近开发中收集的这篇文章主要介绍一个多句柄间简化回调函数的例子 matlab,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

function [] = GUI_16()
% Demonstrate display & change a slider's position & limits with edit boxes  
% This is an extension of GUI_13. Slide the slider and it's position will
% be shown in the editbox.  Enter a valid number in the editbox and the
% slider will be moved to that position.  If the number entered is outside
% the range of the slider, the number will be reset.  The range of the
% slider will be shown in two editboxes on either side of the slider.  The
% user may change the range of the slider, as long as valid entries are
% made.
%
% Suggested exercise:  Notice that any number (>min) is acceptable for the
% max range number, and that when max is chosen such that max < value,
% value is set equal to max.  Modify the code to restrict max>=value.  Do
% similarly for the min.
%
%
% Author:  Matt Fig
% Date:  7/15/2009

S.fh = figure('units','pixels',...
              'position',[300 300 390 100],...
              'menubar','none',...
              'name','GUI_16',...
              'numbertitle','off',...
              'resize','off');
S.sl = uicontrol('style','slide',...
                 'unit','pix',...
                 'position',[60 10 270 30],...
                 'min',1,'max',100,'val',50);
S.ed(1) = uicontrol('style','edit',...
                    'unit','pix',...
                    'position',[10 10 40 30],...
                    'fontsize',12,...
                    'string','1');   % Displays the min.          
S.ed(2) = uicontrol('style','edit',...
                    'unit','pix',...
                    'position',[60 50 270 30],...
                    'fontsize',16,...
                    'string','50');  % Displays the value.
S.ed(3) = uicontrol('style','edit',...
                    'unit','pix',...
                    'position',[340 10 40 30],...
                    'fontsize',12,...
                    'string','100');    % Displays the max.    
set([S.ed(:);S.sl],'call',{@sl_call,S});  % Shared Callback.



function [] = sl_call(varargin)
% Callback for the edit box and slider.
[h,S] = varargin{[1,3]};  % Get calling handle and structure.
SL = get(S.sl,{'min','value','max'});  % Get the slider's info.
E = str2double(get(h,'string'));  % Numerical edit string.

switch h  % Who called?
    case S.ed(1)
        if E <= SL{2}
            set(S.sl,'min',E)  % E is less than current value.
        elseif E < SL{3}
            set(S.sl,'val',E,'min',E) % E is less than max value.
            set(S.ed(2),'string',E) % Set the current display.
        else
            set(h,'string',SL{1}) % Reset the value.
        end
    case S.ed(2)
        if E >= SL{1} && E <= SL{3}
            set(S.sl,'value',E)  % E falls within range of slider.
        else
            set(h,'string',SL{2}) % User tried to set slider out of range.
        end
    case S.ed(3)
        if E >= SL{2}
            set(S.sl,'max',E)  % E is less than current value.
        elseif E > SL{1}
            set(S.sl,'val',E,'max',E) % E is less than max value.
            set(S.ed(2),'string',E) % Set the current display.
        else
            set(h,'string',SL{3}) % Reset the value.
        end      
    case S.sl
        set(S.ed(2),'string',SL{2}) % Set edit to current slider.
    otherwise
        % Do nothing
end


最后

以上就是腼腆发夹为你收集整理的一个多句柄间简化回调函数的例子 matlab的全部内容,希望文章能够帮你解决一个多句柄间简化回调函数的例子 matlab所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部