Effacer les filtres
Effacer les filtres

different reactions to right/left click

1 vue (au cours des 30 derniers jours)
Stepan Vecera
Stepan Vecera le 11 Mai 2021
Commenté : Stepan Vecera le 12 Mai 2021
hi, i have array of buttons and i would like to have different reaction to right/left click. can i do it in one function? i have tried using selectiontype, but i cant figure it out myself
  2 commentaires
Jan
Jan le 11 Mai 2021
Modifié(e) : Jan le 11 Mai 2021
Are talking about figures or uifiguires? Did you create the GUI by code, GUIDE or AppDesigner? Please post the code you have tried and explain, which problems it has. Then it is much easier to suggest a solution. The less the readers have to guess, the more likely suggestions match your problem.
The EventData should allow you to distinguish the mouse keys.
Stepan Vecera
Stepan Vecera le 11 Mai 2021
Modifié(e) : Stepan Vecera le 12 Mai 2021
sorry for not including that,
w=9;
h=9;
fig=figure;
panel = uipanel(fig, ...
'Units', 'normalized', ...
'Position', [0.1, 0.1, 0.7, 0.7]);
for iR=1:w
for iC = 1:h
button(iR, iC) = uicontrol(panel, ...
'Style', 'pushbutton', ...
'Units', 'normalized', ...
'Position', [(iC-1)*1/fS(2), 1-iR*1/fS(1), 1/fS(2), 1/fS(1)], ...
'String', ' ', ...
'Callback', @buttonPushed, ...
'Tag', ' ');
end
end
and i tried this. there is error:Unrecognized property SelectionType for class UIControl. i see, where is the problem, but i dont know how to solve it.
function buttonPushed(hObj, ~)
f=get(hObj, 'SelectionType')
if f=='alt'
hObj.String = sprintf('!')
else
if hObj.Tag == 'bom'
hObj.String=sprintf('bomb');
hObj.BackgroundColor='red';
else
hObj.String=hObj.Tag;
hObj.BackgroundColor=[0.3010 0.7450 0.9330];
end
end
end

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 12 Mai 2021
Modifié(e) : Jan le 12 Mai 2021
Comparing char vectors by == fails, if the number of characters is not equal.
'123' == 'abc' % Working
'1234' == '0' % Working, because 1 variable is a scalar
'12' == 'abc' % error
Use strcmp instead.
The SelectionType is a property of the figure:
function buttonPushed(hObj, ~)
hFig = ancestor(hObj, 'figure');
Selection = get(hFig, 'SelectionType')
if strcmp(Selection, 'alt')
...
end
  1 commentaire
Stepan Vecera
Stepan Vecera le 12 Mai 2021
thank you so much, you are the best!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Maintain or Transition figure-Based 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