正如标题所说,我在Matlab中使用GUIDE工具箱,我首先想知道如何在滑块的两端显示左/右箭头?
另外,如何让滑块每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);
我知道这有点乱,但我稍后会对此进行排序。我面临的问题是如何在由guide创建的GUI脚本中声明我自己的函数,并允许该函数访问GUI对象的句柄。
答案 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);