Button Down fcn for Listbox

6 vues (au cours des 30 derniers jours)
Max Müller
Max Müller le 13 Août 2014
Commenté : Max Müller le 14 Août 2014
Hey Guys,
I want to enable the buttondownfcn for my Listbox.Due to the fact that this code works only for the RightMouseButton, i guess the LeftMouseButton has already another fcn.
The Question: Is there a way to "delete" the listbox Callback,so i can use my Callback for every MouseButton ?
function ArithmeticalMeanButton_Callback(hObject, eventdata, handles)
Data = findobj('tag','PlotedShotsListbox');
set(Data,'buttondownfcn',@ClickToChose);
function ClickToChose(gcbo,evendata,handles);
ListboxContent = get(gcbo,'String');
ListboxLine = get(gcbo,'Value');
ChosenLine = ListboxContent(ListboxLine);

Réponse acceptée

Yu Jiang
Yu Jiang le 13 Août 2014
Modifié(e) : Yu Jiang le 13 Août 2014
Hi Max
In MATLAB GUI, a left mouse click triggers the execution of the listbox's Callback function and a right mouse click triggers ButtonDownFcn.
Therefore, if you would like to execute the same callback function from either the left or the right mouse button click, you may need to assign your function ClickToChose to both the 'ButtonDownFcn' and the 'calllback'.
That is to say, in the function ArithmeticalMeanButton_Callback, you may need to add the following line
set(Data,'callback',@ClickToChose);
More details of the ListBox component can be found here
A good example showing how to use ListBox can be seen via the following link
In addition, I have noiced that you use findobj to get the handle of 'PlotedShotsListBox'. Have you considered directly obtain that from handles structure? For example, you may change the line
Data = findobj('tag','PlotedShotsListbox');
to
Data = handles.PlotedShotsListbox;
This might be able to improve the efficiency of your code.
-Yu
  3 commentaires
Yu Jiang
Yu Jiang le 14 Août 2014
Modifié(e) : Yu Jiang le 14 Août 2014
You are welcome and please free feel to post more questions, if any.
You can find the detailed documentation regarding MATLAB handle classes via the following link
I would suggest you go through the examples on that webpage.
Since the handle class is part of the Object-Oriented Design in MATLAB, you may want to read the introduction to it at the following address
You can also find a good tutorial video there.
-Yu Jiang
Max Müller
Max Müller le 14 Août 2014
Boom...that stuff is gold worth...thank...

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Migrate GUIDE Apps 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