【发布时间】:2021-05-11 05:16:54
【问题描述】:
尝试创建一个热键(例如Shift + d)来打开或关闭事件。
有两个输入框。最上面的有你想要说的单词或短语。底部是每次说出单词/短语之间的冷却时间。现在它的设置是,当点击“输入”按钮时,它会立即开始输入带有冷却时间的短语。
我希望这样当单击“输入”按钮时,它不会开始输入,直到您使用热键(如shift + d)切换它,然后再次按下它时停止。我试过搞乱pynput,但我所做的一切要么导致错误,要么当我点击按钮时程序崩溃了。
from tkinter import Tk, Button, Checkbutton, Entry, Frame
import time
import threading
from pynput.keyboard import Listener, KeyCode, Controller, Key
from pynput import keyboard
#Main window of the Gui
root = Tk()
root.title("Phrase Test")
root.configure(bg="black")
root.geometry("250x100")
root.resizable(width=False, height=False)
#delete text in entry box
def some_callback(event):
event.widget.delete(0, "end")
return None
#Command Entry box
e = Entry(root, width=25, bg="#101010", highlightbackground="black", fg="white", justify="center")
e.pack()
e.insert(0, "Enter your phrase:")
e.bind("<Double-1>", some_callback)
#Cooldown entrybox
e2 = Entry(root, width=25, bg="#101010", highlightbackground="black", fg="white", justify="center")
e2.pack()
e2.insert(0, "Enter cooldown time:")
e2.bind("<Double-1>", some_callback)
#Command
def makemoney():
keyboard = Controller()
while True:
keyboard.type(e.get())
keyboard.press(Key.enter)
keyboard.release(Key.enter)
time.sleep(e2.get())
#Activate Button
myButton = Button(root, text="Enter", command=makemoney, bg="black", highlightbackground="black", fg="white")
myButton.pack()
root.mainloop()
【问题讨论】:
标签: python-3.x tkinter pynput