在Python中,不在窗口中显示键盘输入作为标签。

问题描述 投票:0回答:1

如何在gui窗口中把从键盘输入的字母显示为标签?我现在只能在控制台上查看,请问如何将从键盘输入的字母显示为gui窗口中的标签?

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()
python tkinter label
1个回答
0
投票

我看到你的代码有一些问题。

  1. 你有什么看法?str(print (repr(event.char)," key pressed.")) 返回? 它返回一个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()
© www.soinside.com 2019 - 2024. All rights reserved.