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

2 visualizaciones (últimos 30 días)
Song
Song el 15 de Abr. de 2015
Comentada: Adam el 15 de Abr. de 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

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (1)

Adam
Adam el 15 de Abr. de 2015
Editada: Adam el 15 de Abr. de 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 comentario
Song
Song el 15 de Abr. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Interactive Control and Callbacks en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by