亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Pynput 按鍵延遲和 Tkinter

Pynput 按鍵延遲和 Tkinter

月關寶盒 2023-03-08 11:09:13
我只是想制作一個程序來執行一些鍵盤輸入。我想在每次擊鍵之間設置一個延遲,我計劃在將來隨機設置。但是,我不確定如何after()與 Tkinter 一起使用。沒有 Tkinter,time.sleep工作正常 - 但有了它,GUI 崩潰了。任何幫助,將不勝感激。import timeimport tkinter as tkfrom pynput.keyboard import Key, Controller as KeyboardControllerfrom pynput.mouse import Button, Controller as MouseControllerkeyboard = KeyboardController()mouse = MouseController()def copy(a):    pause_input=17    pause_input2=2    pause_input3=0.5    x=1    while a >= x:        x = x+1        time.sleep(pause_input)        keyboard.press('t')        keyboard.release('t')        time.sleep(pause_input3)        keyboard.press('e')        keyboard.release('e')        time.sleep(pause_input3)        keyboard.press('s')        keyboard.release('s')        keyboard.press('t')        keyboard.release('t')        root = tk.Tk()root.title("GUI Button")btn1 = tk.Button(root, text="Button 1", command=lambda : copy(360))btn2 = tk.Button(root, text="Button 2")btn1.pack()btn2.pack()root.mainloop()
查看完整描述

1 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

首先:gui 不會崩潰 - 它工作正常并且在主循環中它執行您正在編寫的命令。它不會刷新,因為它打印輸出而不是刷新 UI。首先請注意,在創建 UI 時需要記住的是,您應該省略主線程中不必要的工作??赡艿慕鉀Q方案:將工作移至單獨的線程并在那里運行,例如:


import time

import tkinter as tk

from pynput.keyboard import Controller as KeyboardController

import threading


keyboard = KeyboardController()


def copy(a):


    def print_test(a):

        pause_input=2

        pause_input2=2

        pause_input3=0.5

        for _ in range(a):

            time.sleep(pause_input)

            keyboard.press('t')

            keyboard.release('t')

            time.sleep(pause_input3)

            keyboard.press('e')

            keyboard.release('e')

            time.sleep(pause_input3)

            keyboard.press('s')

            keyboard.release('s')

            keyboard.press('t')

            keyboard.release('t')

            print("Wrote test")


    t = threading.Thread(target=print_test, args=(a,))

    t.start()

        

root = tk.Tk()

root.title("GUI Button")

btn1 = tk.Button(root, text="Button 1", command=lambda : copy(360))


btn1.pack()


root.mainloop()


查看完整回答
反對 回復 2023-03-08
  • 1 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號