Matlab GUI Tutorial - Mapping a Keyboard Button to Execute a GUI Callback
24 Jan 2008 Quan Quach 33 comments 3,358 views
Introduction
This tutorial will teach you how to map a keyboard press to execute a GUI callback. We will start with a basic adder GUI. Originally, the GUI adds the two numbers together when the user clicks on the “add” button. We will modify the GUI so that the two numbers will add when the user presses the “enter” key. For more information on this topic, visit this post on Adding Shortcut keys / Hot keys to a GUI.

Example: Modifying the Adder GUI
-
First, download the Adder GUI source files here.
-
Next, we want to add the following line in the opening function:
%we must define the KeyPressFcn for the edit text boxes or else the %enter key will not register while the edit text box is active set(handles.figure1,'KeyPressFcn',@myFunction); set(handles.input1_editText,'KeyPressFcn',@myFunction); set(handles.input2_editText,'KeyPressFcn',@myFunction);
-
Next, we want to add the following code at the end of the m-file
function myFunction(src,evnt) %keyPressFcn automatically takes in two inputs %src is the object that was active when the keypress occurred %evnt stores the data for the key pressed %brings in the handles structure in to the function handles = guidata(src); k= evnt.Key; %k is the key that is pressed if strcmp(k,'return') %if enter was pressed pause(0.01) %allows time to update %define hObject as the object of the callback that we are going to use %in this case, we are mapping the enter key to the add_pushbutton %therefore, we define hObject as the add pushbutton %this is done mostly as an error precaution hObject = handles.add_pushbutton; %call the add pushbutton callback. %the middle argument is not used for this callback add_pushbutton_Callback(hObject, [], handles); end
-
And that’s it. Run the GUI and verifies that it works.
Download: Source Files
You can download the source files here.
This is the end of the tutorial.
33 Responses to “Matlab GUI Tutorial - Mapping a Keyboard Button to Execute a GUI Callback”
Leave a Reply
Include MATLAB code in your comment by doing the following:
<pre lang="MATLAB">
%insert code here
</pre>


Hi,
Thanks for your share ^^
I have used your method to modify my GUI and it works well, but I have one quesition.
After I push some of bottoms on my GUI, the keyboard function was inactivate. I have to click outside of my GUI figure, then the keyboard function will work again.
My question is the mouse and keyboard can’t work simultaneously?
Besides, set(handles.figure1,’KeyPressFcn’,@myFunction); is add before or within the opening function? and handles.figure1 which means the GUI figure? if my GUI figure is XX.fig, then should I change it?
Sorry for such silly questions ><”
Thanks for your help in advanced!!
Best Regards,
maoyuan ( in Taiwan )
Hi maoyuansu,
Did you define the keypressFcn for all of the components within your GUI? THat’s the first thing I can think of. And I don’t have Matlab on this PC so I cannot test it unfortuantely.
Quan
Hi, I am trying to call some function with pushbutton and I am having problems with providing arguments to the function.
When I type this:
example= uicontrol(’Style’,'pushbutton’, …
‘Callback’, ‘Y=demo(1);’);
It works fine, but when I type this:
test=1;
example= uicontrol(’Style’,'pushbutton’, …
‘Callback’, ‘Y=demo(test);’);
I got an error message that “test” is undefined.
Can you please help me with a tip on how to use variable as an input argument of callback function?
Regards,
Pero
Hi every body
can any one help me to commande objects WITH KEYBORD created with VRML into Matlab.
Thanks for your help in advanced!!
Best Regards
Wery nice work thanks this code
how can we detect only mouse click on a figure of MATLAB.
i want to differentiate between mouse click and Key Press..
Thanks for the code. I would like to ask something. How can we use the “MyFunction” as a seperate .m file instead of a function. Should we change anything?
hi,
could you help me to find a good tutorial about Matlab GUI ? because your introduction about GUI is very short, i don’t a lot of things,
please help me,
best regards
Спасибо за новость! Как раз думал об этом!
Кстати с Новым годом всех вас
Hey, how can i use the arrow keys in the keypressfunction. How does matlab define the arrow keys?
Many Thanks
Dan
Спасибо, пост очень помог.
P.s. Поздравляю автора и всех кто ведёт дискуссию с новым 2009 годом, счастья Вам!
To the author and others,
Sir, I have a question here. If my callback function is stored in a different directory, how should I change the following command line:
sub_menu_quad_scan = uimenu(uimenu3,’position’,1,’label’,'Quad Scan’,'Callback’,'@quad_scan_Callback’);
It does not work since quad_scan_Callback is in a different directory.
Побольше бы таких качественных сайтов как ваш!
День добрый, дорогие друзья-товарищи.
Ведь вроде всего то предостаточно, и обеспечиваем чем только можно мы женщин, и преподносим такое драгоценное отношение. Вот я, дорогие друзья для
своей ненаглядной бывшей старался делать абсолютно все: и кофе в кровать, и каждый божий день шикарные букеты цветов и всевозможные фитнесс-клубы и салоны. А эта гадина таки насорила мне в мое сердце и раздвинула свои кривые ноги перед каким-то мелким студентиком. Ну что я теперь поделаю - привязать к своим рукам, без сомнения не самое лучшее решение. Ведь колдовал я над этой девушкой очень сильно - не помогло.
Не стал я ее прощать, поэтому я её оставил наедине с собственной совестью, конечно можно с другой стороны посмотреть - возможно, все иначе, ведь она сама меня покинула… Сейчас вот, прошу личного совета товарищи как отыскать женщину, которая будет всегда преданной. Выкладывайте здесь толковые советы верности.
Доброго времени суток! Мне вот тут стало интересно, а есть какие-нибудь он-лайн школы, курсы или что-то подобное, где учат на веб-мастеров? Пытаюсь найти, но ничего не нахожу. Очень хочу стать веб-мастером, слышал, что они хорошо получают. И вообще очень интересно, как это так они работают? И есть ли какие-нибудь спецпредметы, или ещё какие-нибудь специальные дисциплины, которые веб-мастерам знать обязательно? Может кто поможет, если не сложно?
Слышал, что новичков в этой среде не очень любят - и как тогда быть?
Добрый день!
Уже давно читаю ваш форум, хотелось бы узнать, как можно стать модеретором? Какие требования к людям, если набор модераторов еще проводится?
Хотелось бы знать.
Народ!! Кому не сложно, скиньте пожалуйста ключи на каспеского секьюрити 9!! Оч надо!!
заранее спасибо!
Купить эвкапил. Лечение облысения эвкапилом, средство против выпадения волос и облысения эвкапил
Действительно интересно, хотя не мешало бы чуть подетальней написать, а то есть несколько непонятных моментов
На сайте много фото, видео, ДТП, анекдотов и много другое…
Hi
How can i write a program in GUI for controlling my device by keyboard?
i have to control my device online with keyboard.
ночной клуб знакомств ищу молодого для секса русское интим фото сайт знакомств в томске познакомиться для переписки гей знакомства красноярск . знакомства нижний тагил интим знакомства в нижнем интим секс порно горловка секс знакомства хочу ебаться в жопу трансы интим досуг .
Ты считаешь, что у тебя очень необычные сексуальные желания? Подружка называет тебя извращенцем? Она нисколько не понимает! А здесь тебя поймут, потому что здесь, в сообществе сторонников свободного и дикого секса считается, что любые желания достойны уважения и воплощения! Освободи свою сексуальную фантазию от моральных устоев и наслаждайся жизнью!
Юля Гнибеда пропала 5 марта 2009г. в 6-9 часов утра в Днепропетровске.
4 марта 2009г. она вылетела из Днепропетровска в Стамбул в 17.00, не пробыв и одного часа на территории Турции, ее депортировали из-за недостаточной суммы денег. Она собиралась быть в Стамбуле 4 дня, отпраздновать 8 марта, у нее был обратный билет, больше чем 4 дня она не могла находиться в Турции, поскольку у нее заканчивался срок визы. В 21.40 она прилетела в Днепропетровск, перезвонила нам из самолета, из которого ее не выпускали до прихода пограничников. С 22.00 до 3.00 утра 5.03.09 она общалась с милицией аэропорта и таможенным контролем. Юля всю ночь писала нам смс и звонила, чтобы мы не волновались. В 3.00 ее отпустили. Поскольку ночью она не могла ехать в Кривой Рог, она решила остаться в аэропорту Днепропетровска до утра, чтобы потом доехать до вокзала Днепропетровска, а там сесть на маршрутку Днепропетровск-Кривой Рог.
Последний звонок от Юли был в 5.00 из аэропорта, что она ждет маршрутку. Ни один из водителей маршруток Юлю не помнит. Т.е. факт, что она доехала до Днепропетровска – не установлен.
Последний сигнал с ее мобильного телефона станция получила 5 марта в 6.57 в районе пос.Таромское.
Юля учится на 4 курсе Национального Авиационного Университета. Имеет красный диплом младшего специалиста. В совершенстве владеет английским. Без вредных привычек.
Многие считают, что она пропала не без помощи парня, к которому она ехала (он зарегистрирован у нее в друзьях в одноклассниках), но она и раньше к нему ездила, да и пропала она все-таки здесь, а не в Стамбуле. Новогодние каникулы она провела у Эрхана в Стамбуле, он познакомил ее с родителями и с сотрудниками. В 2008 году он 3 раза приезжал на Украину, сейчас каждый день он общается с нами по скайпу, ждет положительных новостей.
Да уж Но, как говорится в поговорке, а воз и ныне там
Hi
i have a question. i have to control my device with keyboard. my device works with PCI card and can be run by real time tool box and simulink.
what can i do?
Regards,
Roro
Покупал на Вашем на сайте blinkdagger.com предложенный товар несколько недель назад, премного благодарен. Коллектив компании Пром Строй Панель. - Строительные сандвич панели
Сообщение
А если посмотреть на это с другой точки зрения то не все так гладко получается
Хочешь познакомиться для секса? заходи и регестрируйся!
ЗДЕСЬ ЗНАКОМСТВА ДЛЯ СЕКСА
А какие вам нравятся мужские ароматы?