Как открыть окно tkinter при нажатии клавиши - PullRequest
0 голосов
/ 12 января 2019

У меня есть этот код:

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 на клавиатуре, а затем открывать окно Tkinter, когда нажимаю C .

.

Код выше не работает (очевидно), и я не знаю почему. Тем не менее, я знаю, что проблема в том, что он не обнаруживает нажатие клавиш и не проблема с окном.

Ответы [ 3 ]

0 голосов
/ 12 января 2019
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()

Это делает то, что вы хотели?

0 голосов
/ 04 августа 2019

Модуль keyboard имеет функцию под названием wait. Он ждет нажатия клавиши. Вы должны использовать это. Также используйте mainloop для окна tkinter, чтобы оно работало корректно.

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')
...
0 голосов
/ 12 января 2019

Вам необходим непрерывный цикл, чтобы проверить, когда нажата 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...