簡體   English   中英

如何使用 tkinter 創建像 Ctrl+s 這樣的熱鍵?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM