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

1 vue (au cours des 30 derniers jours)
Song
Song le 15 Avr 2015
Commenté : Adam le 15 Avr 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

Réponse acceptée

Song
Song le 15 Avr 2015
Ok, I find out why ... I have to set the property
'enable' -> 'inactive'
to invoke the callback.
  1 commentaire
Adam
Adam le 15 Avr 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.

Connectez-vous pour commenter.

Plus de réponses (1)

Adam
Adam le 15 Avr 2015
Modifié(e) : Adam le 15 Avr 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 commentaire
Song
Song le 15 Avr 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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Graphics Object Programming dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by