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

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 2020년 12월 14일
편집: gioia petrica 2020년 12월 14일
I am using guide and it is a regular push button. Here is the m-file.
Rik
Rik 2020년 12월 14일
For general advice and examples for how to create a GUI (and avoid using GUIDE), have look at this thread.

댓글을 달려면 로그인하십시오.

 채택된 답변

Rik
Rik 2020년 12월 14일
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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Interactive Control and Callbacks에 대해 자세히 알아보기

태그

질문:

2020년 12월 14일

답변:

Rik
2020년 12월 14일

Community Treasure Hunt

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

Start Hunting!

Translated by