2012-11-21 71 views
0

正如標題所示,我在Matlab中使用GUIDE工具箱,我首先想知道如何在滑塊兩端顯示左/右箭頭?Matlab滑塊 - 顯示左右箭頭並每1秒移動一次滑塊

另外我怎樣才能讓滑塊每1秒自動移動一次?

據我瞭解,我需要先創建一個定時器對象並設置執行模式和週期如下:

time = timer; 
set(time,'executionMode','fixedRate','period',1); 

現在我知道我需要將timerFcn設置是這樣的:

set(handles.slider1,'Value',x); 

爲了改變滑塊的位置。

另外我知道我需要首先通過滑動步增加x變量,在我的情況是0.00520833。例如:

x = x + 0.00520833; 

所以我有一些代碼如下:

time = timer; 
set(time,'executionMode','fixedRate','period',1); 
time.timerFcn = set(handles.slider1,'Value', x = x + 0.00520833); 
start(time); 

然而,這並不工作,我敢肯定,這是因爲一些愚蠢的事,我做的事情。

謝謝!

編輯:

現在我可以移動滑塊每一秒,但我希望做的就是經營自己的每一秒的函數。例如:

time.timerFcn = @slider_increment; 

function slider_increment 

set(handles.slider1,'Value', get(handles.slider1,'Value') + 0.00520833) 

slider = get(handles.slider1,'Value'); 
set(handles.text4,'String', slider); 

我知道這是有點混亂,但我會稍後排序。我面臨的問題是如何在指南創建的GUI腳本中聲明我自己的函數,並允許函數訪問GUI對象的句柄。

+0

不工作,或者產生一個錯誤? – Pete

+0

出於好奇,你爲什麼要自動調整滑塊位置?我問,因爲如果你想要,例如,在獲得新數據時滾動前進一個陰謀,那麼可能有更好的方法。 – jerad

+0

那麼,滑塊只是數據顯示時間點的直觀表示。但它進一步允許用戶選擇一個時間點。所以,是的,我試圖展示一系列情節,每秒都會顯示一個新的情節,但滑塊也允許用戶選擇特定的時間。 –

回答

0

首先,這

time.timerFcn = set(handles.slider1,'Value', x = x + 0.00520833); 

肯定會產生一個錯誤......

我想你想是這樣的:

h = uicontrol; 

time = timer; 
set(time,'executionMode','fixedRate','period',1); 

%Note: set(h,val,get(h,val) + change) 
time.timerFcn = @(x,y)set(h,'position', get(h,'position') + 10); 

start(time); 
+0

謝謝,這個作品完美無瑕,但是請你告訴我爲什麼在「執行滑塊移動」下的代碼。零件在滑塊每秒移動時不執行。它通過手動移動滑塊時執行...我需要滑塊每秒移動一次,每移動一次,我都想執行一些代碼來查詢數據庫並顯示數據圖。滑塊只是正在繪製數據流中當前點的可視化顯示。手動移動滑塊也應該執行代碼。 –

+0

我不知道這是什麼「執行滑塊移動」。手段。你在某個地方回撥了嗎?如果是這樣,只有當通過人機交互移動滑塊時纔會觸發回調。您可以通過創建一個新函數myFun.m來解決此問題,該函數將(1)移動滑塊,(2)手動調用滑塊回調。這聽起來像一個單獨的StackOverflow問題。 – Pete