在 Python 中的 Window 中不将键盘输入显示为标签

Not Displaying the Keyboard Inputs as Labels in the Window in Python

如何在 gui 中将键盘输入的字母显示为标签 window? 我现在只能在控制台上查看它。

from tkinter import*  
from tkinter import ttk 
window = Tk()

def letter(event):
    a=str(print (repr(event.char)," key pressed."))

    label=Label(window,text=a)
    label.place(x=15,y=15)


def clicked(event):
    frame.focus_set()
    print(event.x,event.y ,"coordinate clicked.")

frame =Frame(window, width=500, height=500)
frame.bind("<Key>",letter)
frame.bind("<Button-1>", clicked) 
frame.pack()

window.mainloop()

我发现您的代码存在一些问题。

  1. 你怎么看str(print (repr(event.char)," key pressed."))returns?它returns一个None值是然后放入标签,标签显示"None".

  2. 在函数 letter 中,每次调用该函数时都会创建一个 Label,这意味着它只是将标签重叠在之前创建的标签上。因此,在函数外创建一个标签,然后将该标签更新到该函数中。


完整代码:

from tkinter import*  
from tkinter import ttk 

window = Tk()

def letter(event):
    a = "'%s' key pressed" %event.char
    print(a)
    # Update the text of label.
    label['text'] = a

def clicked(event):
    frame.focus_set()
    print(event.x,event.y ,"coordinate clicked.")

frame =Frame(window, width=500, height=500)
frame.bind("<Key>",letter)
frame.bind("<Button-1>", clicked) 
frame.pack()

label=Label(window, text='Key')
label.place(x=15, y=15)

window.mainloop()