Python 如何在tkinter GUI的后台按键并执行功能?
我正在制作一个可以制作可选副本的程序,例如,当按下一个键时,它会粘贴您在程序中选择的内容,或者按下一个键,它会粘贴您在程序中选择的内容。。 但是这个程序应该在后台工作(最小化),但是它不工作Python 如何在tkinter GUI的后台按键并执行功能?,python,tkinter,Python,Tkinter,我正在制作一个可以制作可选副本的程序,例如,当按下一个键时,它会粘贴您在程序中选择的内容,或者按下一个键,它会粘贴您在程序中选择的内容。。 但是这个程序应该在后台工作(最小化),但是它不工作 from tkinter import * from tkinter import ttk first = '' second = '' root = Tk() #root.withdraw() ttk.Label(root, text="1st copy").grid(row=0, column=0,
from tkinter import *
from tkinter import ttk
first = ''
second = ''
root = Tk()
#root.withdraw()
ttk.Label(root, text="1st copy").grid(row=0, column=0, padx=3, sticky='w')
copy1 = ttk.Entry(root, width=36)
copy1.grid(row=0, column=1, columnspan=2)
ttk.Label(root, text="2nd copy").grid(row=1, column=0, padx=3, sticky='w')
copy2 = ttk.Entry(root, width=36)
copy2.grid(row=1, column=1, columnspan=2)
savebutton = ttk.Button(root, text='save')
savebutton.grid(row=2, column=2, sticky='e')
savebutton.config(command=lambda:save())
def save():
global first, second
first = copy1.get()
second = copy2.get()
def BuClick(x):
global first, second
root.clipboard_clear()
if x == 1:
root.clipboard_append(first)
else:
root.clipboard_append(second)
root.update()
root.bind('1', lambda x = 1:BuClick(1))
root.bind('2', lambda y = 2:BuClick(2))
那么我怎样才能让它在后台工作呢??
提前感谢。您可以像这样使用键盘
import keyboard as kb
def call_back():
pass
kb.add_hotkey("shift+1",call_back,args)
kb.wait()
然而,即使焦点不在应用程序上(如果您使用的是另一个应用程序),也会调用它。您可以像这样使用键盘
import keyboard as kb
def call_back():
pass
kb.add_hotkey("shift+1",call_back,args)
kb.wait()
但是,即使焦点不在你的应用程序上(如果你使用的是另一个应用程序),也会调用此函数。在Tkinter中,要在后台执行某些操作,你应该使用此方法。这会将和事件放入UI事件队列中,该队列在延迟一段时间后调用您的函数。在这种情况下,
root.bind(“”,lambda:root.after_idle(BuClick(first))
应该这样做。当事件队列空闲时(即:不处理其他UI事件,如鼠标移动或窗口重画等),这会安排调用BuClick
。在Tkinter中,要在后台执行某些操作,应使用该方法。这会将和事件放入UI事件队列中,该队列在延迟一段时间后调用您的函数。在这种情况下,root.bind(“”,lambda:root.after_idle(BuClick(first))
应该这样做。一旦事件队列空闲(即:不处理其他UI事件,如鼠标移动或窗口重画等),这会安排调用BuClick
。启动一个线程并行工作到UI启动一个线程并行工作到UI恐怕不行,我想你能用我的代码给我吗,我想它不起作用了,你能用我的代码给我吗?恐怕,我想它不起作用了,你能用我的代码给我吗?事实上,我没有工作,或者我没有正确使用它,你能把它粘贴到我的代码中,然后给我吗。。我很抱歉压力太大了!我担心,我认为它不起作用。你能把它和我的代码一起给我吗?实际上我没有起作用,或者可能我没有正确地使用它。你能把它粘贴到我的代码中然后给我吗。。我很抱歉压力太大了!