Get mouse down and mouse up events from slider
7 ビュー (過去 30 日間)
古いコメントを表示
I am implementing (in R2016a) a continuous slider using a listener as follows:
sld = uicontrol('Style', 'slider');
sld.addlistener('ContinuousValueChange', @(src, evt) callbk(src, evt));
What I also want to do is to have callbacks when the mouse is first clicked on the slider and then when it is released. I can't find any appropriate events to do this in the uicontrol class.
Does anyone have suggestions?
0 件のコメント
採用された回答
Jan
2016 年 12 月 9 日
編集済み: Jan
2016 年 12 月 9 日
The standard callback of the slider is called, when the mouse is released:
function main
sld = uicontrol('Style', 'slider', 'Callback', {@callbk, 'released'});
sld.addlistener('ContinuousValueChange', @(h, e) callbk(h, e, 'moved'));
end
function callbk(SliderH, EventData, Event)
disp(Event)
end
The WindowButtonDownFcn does not trigger, when the mouse is over the slider.
Then Java helps:
function main
hSlider = uicontrol('style','slider');
jScrollBar = findjobj(hSlider);
jScrollBar.AdjustmentValueChangedCallback = @(h,e) callbk(h, e, 'moved');
jScrollBar.MousePressedCallback = @(h,e) callbk(h, e, 'clicked');
jScrollBar.MouseReleasedCallback = @(h,e) callbk(h, e, 'released');
end
function callbk(SliderH, EventData, Event)
disp(Event)
end
2 件のコメント
Jan
2016 年 12 月 11 日
@Etaoin: See the MouseClickedCallback. Further events: http://undocumentedmatlab.com/blog/uicontrol-callbacks
その他の回答 (1 件)
Walter Roberson
2016 年 12 月 8 日
I do not know if there are any listeners that can be configured for this. If there are not, then the figure property WindowButtonUpFcn is the only mouse-release callback.
4 件のコメント
Jan
2016 年 12 月 9 日
You do not need the WindowButtonUpFcn, because the slider's Callback performs this action already.
Walter Roberson
2016 年 12 月 9 日
However if you have set the slider to disable then the slider's callback would not be active.
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!