Re: [問題] GUI的滑鼠事件
引用部分原文
請問這個程式如果想要讓滑鼠定住時也持續報座標
(以目前的程式要滑鼠移動才會更新位置)
該怎麼做呢?
搜尋過好像沒有滑鼠定住時的觸發事件 CALLBACK
謝謝!
※ 引述《shaple (耍寶媽)》之銘言:
: ※ 引述《dragonace ()》之銘言:
: : 書上看到的一個例子:
: : function mouse01(action)
: 這裡表示這個函數的名字是mouse01
: 使用函數必須同時給定一個"action"(字串)輸入
: : % mouse01: 本例展示如何設定滑鼠事件的反應指令
: : if nargin==0, action='start'; end
: 這行程式的意思是
: 當你程式呼叫 mouse01 且沒有給定任何輸入字串時
: [[[程式碼為 mouse01 ]]]
: 函數必須輸入的action字串令他等於"start"
: 因為action='start' 所以在下面的switch裡
: 函數會先執行case 'start' 裡的程式內容
: : switch(action)
: : case 'start' % 開啟圖形視窗
: : axis([0 1 0 1]); % 設定圖軸範圍
: : box on; % 將圖軸加上圖框
: : title('Click and drag your mouse in this window!');
: : % 設定滑鼠按鈕被按下時的反應指令為「mouse01 down」
: : set(gcf, 'WindowButtonDownFcn', 'mouse01 down');
: ^^^^^^^^^^^^^^^^^
: 這行的意思如同%裡說明的 :
: 如果在目前視窗有滑鼠按鍵被按下時執行mouse01 down這個程式
: mouse01是函數名 down是mouse01這個函數執行時必須給定的輸入字串
: 發現沒 mouse01不就是目前自己這個函數嗎
: 所以他是自己呼叫自己
: 因為要執行mouse01 輸入字串是down
: 也就是說 action='down'
: 所以要執行switch的case 'down'
: 也就是正下方的那些內容
: : case 'down' % 滑鼠按鈕被按下時的反應指令
: : % 設定滑鼠移動時的反應指令為「mouse01 move」
: : set(gcf, 'WindowButtonMotionFcn', 'mouse01 move');
: : % 設定滑鼠按鈕被釋放時的反應指令為「mouse01 up」
: : set(gcf, 'WindowButtonUpFcn', 'mouse01 up');
: : % 列印「Mouse down!」訊息
: : fprintf('Mouse down!\n');
: : case 'move' % 滑鼠移動時的反應指令
: : currPt = get(gca, 'CurrentPoint');
: : x = currPt(1,1);
: : y = currPt(1,2);
: : line(x, y, 'marker', '.', 'EraseMode', 'xor');
: : % 列印「Mouse is moving!」訊息及滑鼠現在位置
: : fprintf('Mouse is moving! Current location = (%g, %g)\n', ...
: : currPt(1,1), currPt(1,2));
: : case 'up' % 滑鼠按鈕被釋放時的反應指令
: : % 清除滑鼠移動時的反應指令
: : set(gcf, 'WindowButtonMotionFcn', '');
: : % 清除滑鼠按鈕被釋放時的反應指令
: : set(gcf, 'WindowButtonUpFcn', '');
: : % 列印「Mouse up!」訊息
: : fprintf('Mouse up!\n');
: : end
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.190.15
→
02/28 10:01, , 1F
02/28 10:01, 1F
→
03/04 23:12, , 2F
03/04 23:12, 2F
→
03/05 12:58, , 3F
03/05 12:58, 3F
→
03/07 00:24, , 4F
03/07 00:24, 4F
→
03/07 13:12, , 5F
03/07 13:12, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章