我只是想用MATLAB GUI编写反应测试程序。
我有一个按钮,每次点击后都会出现在随机位置,之后会显示下一次点击所需的时间。
现在我想要点击10次后这个按钮消失了。
如何编程,在第10次点击后它只执行“关闭所有;”?
答案 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的屏幕截图:
希望有助于您入门!