On-Screen Keyboard
이전 댓글 표시
Hi guys.
- I would like to make on-screen keyboard.I have no problem in pressing the keys on the keyboard.
- After pressing a key at the moment{pause(2)},I can write one by clicking on the ground.
- I want,the window without changing,I want to print the window.
- I can say is as follows.input text document, trying to guide.
ty
댓글 수: 4
Sean de Wolski
2011년 5월 25일
What is your question?
nsbd
2011년 5월 25일
Sean de Wolski
2011년 5월 25일
I still don't see a question. And no your goal is not clear.
nsbd
2011년 5월 25일
답변 (3개)
Walter Roberson
2011년 5월 25일
0 개 추천
I am not at all sure that I understand the question, but I suspect that what you are looking for is the Java Robot class.
nsbd
2011년 5월 25일
댓글 수: 7
Walter Roberson
2011년 5월 25일
Is the difficulty that the focus is changing to the target window and you do not wish the focus to change? If so, then you can use figure(gcf) to bring the current figure back in to focus.
nsbd
2011년 5월 25일
Walter Roberson
2011년 5월 25일
function psh_la_Callback(hObject, eventdata, handles)
thisfig = ancestor(hObject,'figure');
pause(3)
import java.awt.Robot;
import java.awt.event.*;
key = Robot ;
while (get(handles.psh_la,'Value') == 1) ;
key.keyPress(java.awt.event.KeyEvent.VK_Z);
key.keyRelease(java.awt.event.KeyEvent.VK_Z);
figure(thisfig);
end
nsbd
2011년 5월 25일
Walter Roberson
2011년 5월 25일
thisfig is just a variable name, and is used to try to return focus to the tool.
It should not matter that you are using GUIDE. GUIDE is limited and you will need to program some parts yourself.
nsbd
2011년 5월 25일
nsbd
2011년 5월 25일
Matt Fig
2011년 5월 25일
I am not sue of your question either. Here is the basic layout of a custom GUI keyboard that I made for a client. Notice that I left all of the callbacks out, so the GUI does nothing right now. The original GUI used complex callbacks including JAVA and ActiveX calls, but I won't include it here. Perhaps you can adapt it to your needs.
function [] = keyboard_gui()
set(0,'units','pix')
SCR = get(0,'screensize');
S.fh = figure('menubar','none',...
'numbertitle','off',...
'name','Friendly Keyboard',...
'units','pix',...
'resize','off',...
'position',[20 20 SCR(3)-25 SCR(4)-80],...
'color',[.5 .5 1]);
S.POS = cell(28,1); % Pre-allocate so we get a column vector.
for ii = 1:26 % Create the letter buttons.
ax = subplot(5,6,ii); % Use SUBPLOT to get alignment.
set(ax,'units','normalized','visible','off')
S.POS{ii} = round(get(ax,'pos')*1000)/1000 - [0 .075 0 0];
delete(ax)
S.pb(ii) = uicontrol('style','push',...
'units','norm',...
'position',S.POS{ii},...
'string',char(64+ii),...
'fontsize',45,...
'fontweight','bold',...
'enable','off');
end
pwidth = S.POS{2}(3)+S.POS{2}(1)-S.POS{1}(1);
S.POS{27} = [S.POS{3}(1) S.POS{26}(2) pwidth S.POS{1}(4)]; % BACKSPACE button.
S.pb(27) = uicontrol('style','push',...
'units','norm',...
'position',S.POS{27}+[0 0 .2705 0],...
'string','Delete',...
'fontsize',35,...
'fontweight','bold',...
'enable','off');
S.pb(28) = uicontrol('style','push',... % The CLEAR button.
'units','norm',...
'position',[0.84625 0.875 .10375 0.11],...
'string','Clear',...
'fontsize',35,...
'fontweight','bold',...
'enable','off');
S.ed = uicontrol('style','edit',...
'units','norm',...
'position',[0.05 0.875 0.7825 0.11],...
'fontsize',50,...
'fontweight','bold',...
'horizontalalignment','left',...
'enable','off');
set(S.pb,'backgroundcolor',[.9 .6 .6])
drawnow % Flush event queue
댓글 수: 13
Sean de Wolski
2011년 5월 25일
Not QWERTY!!!!!
Matt Fig
2011년 5월 25일
That's how he wanted it!
nsbd
2011년 5월 25일
Matt Fig
2011년 5월 25일
Did you read my comments before the function? I state that all of the callbacks have not been included...
Also, what do you mean, "write to the floor"? Do you mean, "write to the command window"?
nsbd
2011년 5월 25일
Walter Roberson
2011년 5월 25일
I think I understand your question now. I do not use Windows much, so I do not know the solution if the code in my answer does not work.
Matt Fig
2011년 5월 25일
I see, then at in the GUI you would need to open a file and in the callback use FPRINT to write to it. This wouldn't be too hard to add to what I gave you.
nsbd
2011년 5월 25일
Walter Roberson
2011년 5월 25일
Matt, I do not see how fprintf() fits in with the problem as I understand it.
My understanding is that the problem is that when a key event is sent to another window using Java Robot, that the MATLAB window is getting iconized.
Matt Fig
2011년 5월 25일
I understood differently. If you look at comment #5 above, nsbd said write to text file. Of course this doesn't take care of the ActiveX stuff...
nsbd
2011년 5월 25일
nsbd
2011년 5월 25일
Walter Roberson
2011년 5월 25일
@Matt, I understood "exam :text document" to mean "for example, write in to a text editor's window".
@nsbd: We are still trying to understand what you are trying to do. I do not understand yet why the psh_la_Callback code I suggested is not usable?
카테고리
도움말 센터 및 File Exchange에서 Environment and Settings에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!