按下键时如何打开tkinter窗口

时间:2019-01-12 19:06:06

标签: python python-3.x tkinter keyboard

我有此代码:

from tkinter import *
import keyboard
#console
if keyboard.is_pressed('c'):
    console=Tk()
    console.geometry("500x425")
    console.title("Devoloper Console")
    console.resizable(True,True)
    console.configure(bg='gray95')

基本上,我正在尝试使用键盘模块检测何时按下键盘上的 C ,然后在按下 C 时打开Tkinter窗口。 / p>

上面的代码不起作用(显然),我也不知道为什么。但是,我确实知道问题在于它没有检测到按键,也不是窗口有问题。

3 个答案:

答案 0 :(得分:0)

您需要连续循环才能检查何时按下c

from tkinter import *
import keyboard

x = True

while x:
    if keyboard.is_pressed('c'):
        x = False
        console=Tk()
        console.geometry("500x425")
        console.title("Devoloper Console")
        console.resizable(True,True)
        console.configure(bg='gray95')
        console.mainloop()

答案 1 :(得分:0)

import tkinter as tk
import keyboard

while (not keyboard.is_pressed("c")):
       pass

root = tk.Tk()
root.bind("<c>", lambda e: tk.Toplevel())
root.mainloop()

这是您想要的吗?

答案 2 :(得分:0)

模块keyboard具有一个名为wait的功能。它等待按键被按下。您必须使用它。对于tkinter窗口,也请使用mainloop以使其正常运行。

import tkinter as tk
import keyboard

keyboard.wait("c")   #< It'll wait for c to be pressed

console = tk.Tk()
console.geometry("500x425")
console.title("Devoloper Console")
console.resizable(True,True)
console.configure(bg='gray95')
...