Change multiple push buttons with one push button?

Hello!
I am trying to make a virtual keyboard but i can not make the "shift" button for upper letters.
This is the call back function for a key :
% --- Executes on button press in Q.
function Q_Callback(hObject, eventdata, handles)
str=get(handles.edit1,'String');
set(handles.edit1,'String',[str 'q']);
This is the call back function for shift button
% --- Executes on button press in Shift.
function Shift_Callback(hObject, eventdata, handles)
% hObject handle to Shift (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
Can you help me to find a solution to change the normal letter into an upper one?
Thank you!

3 Comments

Is shift a toggle push button or a regular push button? Are you using GUIDE or App Designer? Can you attach your full m-file and .fig or .mlapp file?
I am using guide and it is a regular push button. Here is the m-file.
For general advice and examples for how to create a GUI (and avoid using GUIDE), have look at this thread.

Sign in to comment.

 Accepted Answer

You can make the shift callback change a flag. That flag should be stored in the guidata struct. In the other callbacks you can use it to switch between upper and lower case.
function Shift_Callback(hObject, eventdata, handles)
handles.ShiftIsPressed=~handles.ShiftIsPressed;%invert
guidata(hObject,handles)
end
function Q_Callback(hObject, eventdata, handles)
letter='q';
add_letter(handles,letter)
end
function add_letter(handles,letter)
if handles.ShiftIsPressed
letter=upper(letter);
%if you want to un-set shift, you can set it to false here
%handles.ShiftIsPressed=false;
%guidata(gcbf,handles)
end
str=get(handles.edit1,'String');
set(handles.edit1,'String',[str letter]);
end

More Answers (0)

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Tags

Asked:

on 14 Dec 2020

Answered:

Rik
on 14 Dec 2020

Community Treasure Hunt

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

Start Hunting!