Matlab GUI按钮反应

时间:2015-01-09 14:06:10

标签: matlab user-interface matlab-guide

我只是想用MATLAB GUI编写反应测试程序。

我有一个按钮,每次点击后都会出现在随机位置,之后会显示下一次点击所需的时间。

现在我想要点击10次后这个按钮消失了。

如何编程,在第10次点击后它只执行“关闭所有;”?

1 个答案:

答案 0 :(得分:0)

以下是一些可以满足您需求的代码。

正如@ Li-aung所说,我添加了一个计数器,用于跟踪推按钮的次数。计数器存储在图的手柄结构中;但是为了简单起见,你可以把它变成一个全局变量。

以下是带注释的代码:

function RandomButton(~)


hFig = figure('Position',[100 100 200 200],'Visible','off');

handles.CounterText = uicontrol('Style','text','Position',[50 150 60 30],'String','Counter')
handles.DisplayCounterText = uicontrol('Style','text','Position',[50 100 60 30],'String','0')

handles.Button = uicontrol('Style','pushbutton','position',[50 50 60 30],'String','Push here','Callback',@(s,e) Push);

handles.PushCounter = 0; %// Initialize counter

movegui(gcf,'center')
set(hFig,'Visible','on')

guidata(hFig,handles)

    function Push

        handles = guidata(hFig);

        handles.PushCounter = handles.PushCounter +1;

        set(handles.DisplayCounterText,'String',num2str(handles.PushCounter));

        if handles.PushCounter < 10 %// Assign condition to stop.

        set(hFig,'Visible','off');
        set(hFig,'Position',[1000*rand(1) 1000*rand(1) 200 200]); %// Assign random position 

        set(hFig,'Visible','on');

        guidata(hFig,handles) %// Update handles structure. Important!

        else

            close all
        end

    end
end

以下是GUI的屏幕截图:

enter image description here

希望有助于您入门!