Why buttondownfcn of pushbutton not work in a classdef file ??!!!

2 Ansichten (letzte 30 Tage)
Song
Song am 15 Apr. 2015
Kommentiert: Adam am 15 Apr. 2015
I just want to build a pushbutton in a class defintion with a buttondown callback. But there is no reaction if I click the button.
If I change the 'buttondownfcn' to 'callback'. Then it will work. But I indeed need 'buttondownfcn' for my function.
Is this a Matlab bug or I missed something? I am using matlab 2011b.
Thanks guys.
classdef testBtnCbk
%TESTBTNCBK Summary of this class goes here
% Detailed explanation goes here
properties
end
methods
function obj = testBtnCbk()
hfig = figure;
oTab.hBtn = uicontrol('style', 'pushbutton',...
'parent', hfig, ...
'backgroundcolor', [0 0 0], ...
'foregroundcolor', [1 1 1], ...
'string', 'hello', ...
'Units', 'pixel', ...
'buttondownfcn', @obj.pshbtnDwnCbk, ...
'Position', [100 100 100 100]);
end
function pshbtnDwnCbk(obj, ~, ~)
msgbox('hello')
end
end
end

Akzeptierte Antwort

Song
Song am 15 Apr. 2015
Ok, I find out why ... I have to set the property
'enable' -> 'inactive'
to invoke the callback.
  1 Kommentar
Adam
Adam am 15 Apr. 2015
Ah, I'd never really noticed that aspect of functionality. That will effectively disable its use as a pushbutton though so you would have to change enable back to 'on' at times you want it to actually behave as a pushbutton rather than having its buttondownfcn active.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Adam
Adam am 15 Apr. 2015
Bearbeitet: Adam am 15 Apr. 2015
Yes, I just did a test and ButtonDownFcn does appear not to work. This is independent of being in a class. It is the same on command line.
However, I can think of no possible reason why you would need to use ButtonDownFcn on a pushbutton given that 'Callback' does exactly that.
  1 Kommentar
Song
Song am 15 Apr. 2015
I want to realize a function in GUI after pushing pushbutton then move the button if i hold the mouse left button and move. In this case, I need to address buttondown / buttonup function instead of click callback.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Interactive Control and Callbacks finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by