Filter löschen
Filter löschen

different reactions to right/left click

5 Ansichten (letzte 30 Tage)
Stepan Vecera
Stepan Vecera am 11 Mai 2021
Kommentiert: Stepan Vecera am 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 Kommentare
Jan
Jan am 11 Mai 2021
Bearbeitet: Jan am 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 am 11 Mai 2021
Bearbeitet: Stepan Vecera am 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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jan
Jan am 12 Mai 2021
Bearbeitet: Jan am 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

Weitere Antworten (0)

Kategorien

Mehr zu Maintain or Transition figure-Based Apps finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by