|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
以下代码在idle的原代码里可以正常运行, 会在G:\time.txt文件中记录鼠标点击时间,
但把程序用pyinstaller转成exe文件后确不会记录鼠标点击时间是怎么回事?
- from pynput import mouse
- import time
- class mousetimer():
- def __init__(self,):
- # 初始化SB的释放状态
- self.start_time = 0
- def on_click(self, x, y, button, pressed):
- # 按下 SB 左键开始计时
- if str(button) == 'Button.left' and pressed:
- self.start_time = time.time()
- with open(r'G:\time.txt', 'a') as file_object:
- file_object.write(str(self.start_time)+'\n')
- def start(self):
- # 需要监听的 SB 事件
- listener = mouse.Listener(on_click=self.on_click, suppress=False)
- # 开始监听
- listener.start()
- if __name__ == '__main__':
- mouse_timer = mousetimer()
- mouse_timer.start()
复制代码
本帖最后由 阿奇_o 于 2022-10-17 17:31 编辑
应该是你 没理解 non-block非阻塞式 和 block阻塞式 的区别, 用错了。
再仔细看看官方文档吧,然后,根据你的需求,应该是改写为 block模式 。
或者,你把现在这种non-block模式,改写和放到 GUI的main-loop里(如果你刚好涉及GUI类似的逻辑)。
其次,根据你当前的需求,或许无需用面向对象来封装on_click等方法,不然你可能不太会改写和调用(官方的例子是非面向对象的)
|
|