Get mouse down and mouse up events from slider

7 ビュー (過去 30 日間)
Etaoin Shrdlu
Etaoin Shrdlu 2016 年 12 月 8 日
コメント済み: Jan 2016 年 12 月 11 日
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?

採用された回答

Jan
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 件のコメント
Etaoin Shrdlu
Etaoin Shrdlu 2016 年 12 月 10 日
Thanks, Jan. This "undocumented Matlab" use of Java does the trick. Interestingly, it doesn't signal mouse up or down when the buttons on either end of the slider are pushed.
Jan
Jan 2016 年 12 月 11 日
@Etaoin: See the MouseClickedCallback. Further events: http://undocumentedmatlab.com/blog/uicontrol-callbacks

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
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
Jan 2016 年 12 月 9 日
You do not need the WindowButtonUpFcn, because the slider's Callback performs this action already.
Walter Roberson
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 ExchangeCharacters and Strings についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by