0
我只是想用MATLAB GUI編程反應測試。Matlab GUI按鈕反應
我有一個按鈕,在每次點擊後,隨機出現,隨後顯示下一次單擊所需的時間。
現在我希望這個按鈕消失10次後點擊它。
我該如何編程,在第10次點擊後,它只是執行「關閉所有」?
我只是想用MATLAB GUI編程反應測試。Matlab GUI按鈕反應
我有一個按鈕,在每次點擊後,隨機出現,隨後顯示下一次單擊所需的時間。
現在我希望這個按鈕消失10次後點擊它。
我該如何編程,在第10次點擊後,它只是執行「關閉所有」?
這是一些代碼,它可以做你想做的。
As @ 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的截圖:
希望幫助讓你開始!
因此@freaky是否嘗試了我的建議? –
您的主要問題是您需要在某處保留計數器,但您的GUI回調函數沒有任何持久變量。問問你自己:在一個你可以在你的GUI回調函數調用之間訪問的地方,你可以在哪裏保存一個'counter'變量? –