How to create a switch until released button in Matlab GUI
5 ビュー (過去 30 日間)
古いコメントを表示
Hi, I am trying to create a button in the GUI where random numbers appear in the output as the user holds down a button.
I have used a toggle button with the code:
while get(hObject,'Value')
disp(rand)
pause(0.001)
end
This code works, but the output runs as the user presses the button and carries on until the button is pressed again.
How do i create a button where the code only loops while the button is being pressed down? As soon as the mouse click is released, the code stops executing
0 件のコメント
回答 (2 件)
Sean de Wolski
2014 年 10 月 29 日
There's not really a straight-forward way to do that. It can be done with a patch made to look like a uicontrol whose buttondownfcn changes the windowbuttonupfcn like in this example:
However, it would be better if it could just have a toggle button that when toggled stops:
0 件のコメント
matt dash
2014 年 10 月 29 日
As sean said, this is not an easy thing to do. The problem is that since your code is continually running in a loop, it is keeping matlab busy, and it can only be interrupted by an event on the java event dispatch thread. The reason your code with the toggle button works is that toggling a button is such an event.
But to get it to detect the mouse button being released is more complicated. I think you would need to set up a MouseListener in java. I dont think the windowbuttonupfcn method will work here since Matlab will be stuck in your while loop, it will never process the windowbuttonupfcn.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Migrate GUIDE Apps についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!