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 Commenti

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?
gioia petrica
gioia petrica il 14 Dic 2020
Modificato: gioia petrica il 14 Dic 2020
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.

Accedi per commentare.

 Risposta accettata

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

Più risposte (0)

Categorie

Scopri di più su Interactive Control and Callbacks in Centro assistenza e File Exchange

Richiesto:

il 14 Dic 2020

Risposto:

Rik
il 14 Dic 2020

Community Treasure Hunt

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

Start Hunting!

Translated by