|
|
发表于 2020-12-11 15:13:33
来自手机
|
显示全部楼层
lengyue869 发表于 2020-12-11 13:31
还是不行,运行后文本框一直停留在左上角,并没有随着鼠标移动而移动,也没有将鼠标的坐标写进去...
应该是子线程不能刷新界面的原因
试试这个(手机写码不能测试真难受 )
- import tkinter as tk
- #import pyautogui as ag
- from time import sleep
- from threading import Thread
- KEEP_LISTEN = False
- THREAD_LISTENING = None
- POSITION = 0, 0
- def listening(time_interval):
- global POSITION
- while KEEP_LISTEN:
- new_position = ag.position()
- if new_pos != POSITION:
- POSITION = new_position
- sleep(time_interval)
- def start_listen(t):
- global THREAD_LISTENING
- # t 是刷新时间间隔
- if THREAD_LISTENING:
- return
- THREAD_LISTENING = Thread(target=listening, args=(t,))
- THREAD_LISTENING.start()
- def stop_listen():
- global KEEP_LISTEN, THREAD_LISTENING
- KEEP_LISTEN = False
- THREAD_LISTENING.join()
- THREAD_LISTENING = None
- root = tk.Tk()
- root.attributes("-alpha", 0.6)
- root.overrideredirect(True)
- etyText = tk.StringVar()
- def mouse_move_event():
- root.geometry(f'60x20+{POSITION[0]}+{POSITION[1]}')
- etyText.set(f'{POSITION[0]},{POSITION[1]}')
- root.after(100, mouse_move_event)
- ety = tk.Entry(root, textvariable=etyText)
- ety.pack()
- # 刷新间隔0.1秒
- start_listen(0.1)
- root.after(100, mouse_move_event)
- tk.mainloop()
复制代码 |
|