[英]How do you create hotkeys like Ctrl+s with tkinter?
我正在嘗試創建一個文本編輯器,我需要 Ctrl+s、Ctrl+shift+s 和 Ctrl+o 熱鍵來完成其最終更新
我嘗試使用 pynput 但這阻止了 tkinter 主循環
你能幫我嗎?
TKinter 中沒有用於ctrl+s
之類的熱鍵綁定,但您可以通過兩個綁定和一點 state 管理向任何 window 添加任何熱鍵。
from tkinter import *
Master = Tk()
ctrl_pressed = False
def master_key_pressed(event):
# ctrl key pressed
if event.keycode == 17:
ctrl_pressed = True
# 'ctrl+s' pressed
elif event.keycode == 83 and ctrl_pressed:
pass
def master_key_released(event):
# ctrl key released
if event.keycode == 17:
ctrl_pressed = False
Master.bind('<Key>', master_key_pressed)
Master.bind('<KeyReleased>', master_key_released)
有一個部分完整的鍵名列表。
from tkinter import *
Master = Tk()
def putcommandhere(event):
print ('hello')
Master.bind('<key>', putcommandhere)
復制並運行。 它正在工作! Python 3.10
import tkinter as tk
from tkinter import messagebox
window = tk.Tk()
def save_current_file(event=False):
messagebox.showinfo(message='File saved! (fake)')
# hotkey to save current file
window.bind('<Control-s>', save_current_file)
window.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.