Azzera filtri
Azzera filtri

different reactions to right/left click

5 visualizzazioni (ultimi 30 giorni)
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 Commenti
Jan
Jan il 11 Mag 2021
Modificato: Jan il 11 Mag 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 il 11 Mag 2021
Modificato: Stepan Vecera il 12 Mag 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

Accedi per commentare.

Risposta accettata

Jan
Jan il 12 Mag 2021
Modificato: Jan il 12 Mag 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

Più risposte (0)

Categorie

Scopri di più su Maintain or Transition figure-Based Apps in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by