Tkinter键盘按钮为Entry添加字母

时间:2017-10-25 11:34:11

标签: python user-interface tkinter keyboard

我正在尝试为我的GUI编写代码。我想要一个键盘,为Entry小部件添加一个字母。我很接近它,但问题是它在点击按钮时只在字母“a”中添加。

正如您在我的代码中看到的,我在命令中添加了“a”。 command = lambda:set_text('a') 当然,这就是它打印'a'的原因。但是如果我从forloop中取信并使set_text(字母)在Entry小部件中只显示H.

我也尝试删除第二个循环将其更改为set_text(lst [count]) 所有按钮现在都在条目中添加“A”。

知道我做错了吗?

我的代码:

    from tkinter import *
from ttk import *

def maakbuttons():
    count = 0
    lst = []
    if count <= 7:
        for letter in 'ABCDEFGH':
            lst.append(letter)
        for letter in lst:
            Buttons = Button(master=root, text=letter, command=lambda: set_text('a'))
            Buttons.place(x=20, y=30 +50 * count)
            count+=1

def set_text(text):
    a = e.get() + text
    e.delete(0, len(e.get()))
    e.insert(0, a)


def remove_letter():
    last = len(e.get())-1
    if last >= 0:
        e.delete(last)


root= Tk()



a = root.wm_attributes('-fullscreen', 1)

e = Entry(root,width=10)
e.place(x=500, y=500)

maakbuttons()
root.mainloop()

1 个答案:

答案 0 :(得分:1)

使用以下命令重新排列您的行:

 Buttons = Button(master=root, text=letter, command=lambda x=letter: set_text(x))

此外:

for letter in 'ABCDEFGH':
    lst.append(letter)
for letter in lst:
   ...

似乎是多余的。