這是我的代碼,在該行中,我對return導致此問題的代碼進行了評論。
from pynput import mouse
def on_move(m_x, m_y):
print('Pointer moved to {0}'.format((m_x, m_y)))
def on_click(m_x, m_y, button, pressed):
#print('{0} at {1}'.format('Pressed' if pressed else 'Released',(m_x, m_y)))
if(pressed):
print("Pressed")
else:
print("( x = " str(m_x) ", y = " str(m_y) " )")
return(m_x, m_y) #this is the return
if not pressed:
# Stop listener
return False
def on_scroll(m_x, m_y, dm_x, dm_y):
print('Scrolled {0} at {1}'.format(
'down' if dy < 0 else 'up',
(m_x, m_y)))
# Collect events until released
with mouse.Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:
listener.join()
# ...or, in a non-blocking fashion:
listener = mouse.Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll)
A_coord_x, A_coord_y = mouse.Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll)
#listener.start()
print (A_coord_x)
print (A_coord_y)
我唯一希望的是,給予在點擊后的坐標存盤在變數A_coord_x和A_coord_y
uj5u.com熱心網友回復:
這是給你的答案。這將釋放listener,讓你的坐標A_coord_x和A_coord_y
from pynput.mouse import Listener
A_coord_x, A_coord_y = 0, 0
def on_click(x, y, button, pressed):
global A_coord_x, A_coord_y
if pressed:
A_coord_x, A_coord_y = x, y
print('{0} at {1}'.format(
'Pressed' if pressed else 'Released',
(x, y)))
return x,y
if not pressed:
# Stop listener
return False
with Listener(on_click=on_click) as listener:
coords = listener.join()
print ('X coordinates :',A_coord_x)
print ('Y coordinates :',A_coord_y)
輸出:
Pressed at (1211, 400)
X coordinates : 1211
Y coordinates : 400
uj5u.com熱心網友回復:
on_click()是一個事件處理程式,您不能從中回傳值,return False 陳述句只會停止偵聽器。只需從處理程式中呼叫 set_coordinates(x,y) 函式,您就應該得到預期的結果。
也許也看看檔案,有一個關于如何使用 mouse.listener 的例子
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/383762.html
下一篇:如何在SAS中使用CATX功能
