2017-10-25 15 views
0

私のGUI用のコードを書こうとしています。 Entryウィジェットに手紙を追加するキーボードが必要です。私はそれに近いですが、問題はそのボタンをクリックすると、エントリに文字 'a'だけを追加することです。Tkinterキーボードボタンが入力に文字を追加します

私のコードでわかるように、私はコマンドに 'a'を追加しました。 command = lambda:set_text( 'a') これは印刷が「a」の理由です。しかし、もし私がforloopから手紙を受け取り、set_text(文字)にEntryウィジェットのHのみを表示させるならば。

また、2回目のループを削除すると、set_text(lst [count])に変更されます。 すべてのボタンは現在「A」をエントリに追加しています。

私は間違っていると思いますか?

私のコード:また

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

:とのあなたのラインRepalce

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

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

は冗長化しているようです。

+0

ありがとうございました!私はあなたのボタンラインを交換し、今は正常に動作します。 「ABC ...」の手紙の意味はどういう意味ですか? –

関連する問題