Pushbutton activated by Enter(return) key

4 Ansichten (letzte 30 Tage)
Petr
Petr am 31 Okt. 2012
Hi,
I would like to ask you why doesn't work when I call funtion pushbutton1_Callback inside pushbutton1_KeyPressFcn. I have besidde other things buttons where I want them to react to Enter key when user Tabs to it (+ ofcourse when user just click at it). I thought that the simplest way would be to call pushbutton1_Callback in pushbutton1_KeyPressFcn,but obviously not...how caan I do this feature ?
Thanks, Peter
  5 Kommentare
Sean de Wolski
Sean de Wolski am 1 Nov. 2012
How are you running this GUI? Are you just double-clicking on the figure? You need to run the *.m file associated with the figure:
>>myGUI
Petr
Petr am 2 Nov. 2012
Bearbeitet: Petr am 2 Nov. 2012
Yes I'm useing GUIDE and I am running my program from *.m file...even when I use handles it show same error...
I dont get why error mentiones handles...I dont want to use that i want to call a Callback function from another function...
Image Analyst method is also a good idea, but it's doing the same think...
For example this in my codeworks perfectly....
function uipushtool4_ClickedCallback(hObject, eventdata, handles) % hObject handle to uipushtool4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
pushbutton2_Callback

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Petr
Petr am 7 Nov. 2012
Solution was simple and enough elegant for me...
.
function pushbutton1_KeyPressFcn(hObject, eventdata, handles)
key = get(gcf,'CurrentKey');
if(strcmp (key , 'return'))
pushbutton1_Callback(hObject, eventdata, handles)
end
function pushbutton1_Callback(hObject, eventdata, handles)
%code to be executed
  1 Kommentar
Luis Santiago Hernández Castillo
Maybe this one could be a good option too:
%bhok is the handles of your pushbutton.
%xxx represents any data for ur code.
bhok.Callback=@(src,~)okcbd(src,xxx);
bhok.KeyPressFcn=@(src,event)bhokcall(src,event,xxx);
function bhokcall(src,event,xxx)
if event.Key=='return' %#ok<BDSCA>
okcbd(src,xxx)
end
end
function okcbd(src,xxx)
%code to be executed
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Sean de Wolski
Sean de Wolski am 31 Okt. 2012
You can do this, you just need to feed it the correct inputs. You could probably find these by looking in the property inspector in GUIDE at the callback to see what GUIDE is feeding it.

Image Analyst
Image Analyst am 1 Nov. 2012
Just put the inside of the click callback into its own function, like Button1Pressed() or something like that.
function handles=Button1Pressed(handles)
% whatever it does....
Then have the click and keypress callbacks both call Button1Pressed(). You don't need to pass in anything other than handles.
  1 Kommentar
Petr
Petr am 2 Nov. 2012
Good idea, but same error and doesnt work :)

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Interactive Control and Callbacks 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