python tkinter - 绑定一个 "Global" 快捷键,可以从 window 外部触发
python tkinter - Bind a "Global" key shortcut which can be triggered from outside the window
我在想是否有任何方法可以将“GLOBAL”键绑定绑定到 tk/ttk 小部件
例如:
在这段代码中:
import tkinter as tk
def output(lines = 'hehehehe'):
print(lines)
root = tk.Tk()
button = tk.Button(root, text ='HAHAHA', command = lambda:output('hahaha'))
button.pack()
root.bind('<Control-a>', output)
root.mainloop()
现在,每当我在 window 处于活动状态时按下 Control+A,功能 output()
就会工作..
但是,当我启动任何其他 window 并使此 tk-window 处于非活动状态时,键绑定不起作用...
有什么方法可以绑定“GLOBALLY”吗?
不可能,您无法在 tkinter
中访问全局击键,您将不得不使用其他一些外部库,例如 keyboard
,应该很容易。
先用pip install keyboard
安装库,然后:
import tkinter as tk
import keyboard
....
keyboard.add_hotkey('ctrl+a', output, args=('From global keystroke',))
root.mainloop()
我在想是否有任何方法可以将“GLOBAL”键绑定绑定到 tk/ttk 小部件
例如: 在这段代码中:
import tkinter as tk
def output(lines = 'hehehehe'):
print(lines)
root = tk.Tk()
button = tk.Button(root, text ='HAHAHA', command = lambda:output('hahaha'))
button.pack()
root.bind('<Control-a>', output)
root.mainloop()
现在,每当我在 window 处于活动状态时按下 Control+A,功能 output()
就会工作..
但是,当我启动任何其他 window 并使此 tk-window 处于非活动状态时,键绑定不起作用...
有什么方法可以绑定“GLOBALLY”吗?
不可能,您无法在 tkinter
中访问全局击键,您将不得不使用其他一些外部库,例如 keyboard
,应该很容易。
先用pip install keyboard
安装库,然后:
import tkinter as tk
import keyboard
....
keyboard.add_hotkey('ctrl+a', output, args=('From global keystroke',))
root.mainloop()