2011-12-28 11 views
-4

Entry with 6 Buttonボタンの内容は

私の質問は

私は必要としない私はそれがこれらのボタンの文字以上のようâエントリ内貼りますâボタンをクリックしたとき、私はそれを実装する方法でありますそれのためのコード。私が必要とするのは、これを行うアイデアです。

+4

GUIに何を使用しているのかを特定しない限り、回答するのは難しいでしょう。また、作業可能な自己完結型のテスト可能なコードスニペットを含める必要があります。 – mac

+0

私はgui tkinterモジュールとして使用する – marco

+1

良い悲しみの人々!この質問は、それほど多くのダウン投票を受けるほど悪くない(私はこれを書いているように7つのダウン投票がある)。質問は書かれていませんが、回答を出すのはまだ簡単です。ポイントを得るには-1のスコアで十分だと思います。 –

答えて

1

これはTkinterのエントリウィジェットを使用して、2つのボタンのためにそれを行う方法を示しています。

from Tkinter import * 

class Application(Frame): 
    def __init__(self, master=None): 
     Frame.__init__(self, master) 

     self.text = Entry(self) 
     self.text.pack({"side": "left"}) 

     self.but1 = Button(self) 
     self.but1["text"] = "a" 
     self.but1.bind("<Button-1>", self.do) 
     self.but1.pack({"side": "left"}) 

     self.but2 = Button(self) 
     self.but2["text"] = "b" 
     self.but2.bind("<Button-1>", self.do) 
     self.but2.pack({"side": "left"}) 

     self.pack() 

    def do(self, event): 
     widget = event.widget 
     self.text.delete(0, END) 
     self.text.insert(0, widget["text"]) 

root = Tk() 
app = Application(master=root) 
app.mainloop() 

編集:解消root.destroy()は必要ありません。 bindメソッドの代わりにcommand引数を使用する代替戦略については、下記のBryan Oakleyのコメントを参照してください。

+1

ウィジェットの 'command'プロパティを使うのではなく、ボタンにバインディングを使用することはむしろ珍しいことです。 –

+0

あなたのコード上の問題は、私がaかbのどちらかをクリックすることです。しかし、私の問題は、私はプラスのbをキーボードの文字から組み合わせて入力することもできる機会があるということです。 – marco

+0

あなたの投稿は、あなたの投稿がどのようにするかというアイデアを尋ねます。ポスト...とにかく簡単です、self.text.deleteを削除して、あなたが望むように動作します – joaquin

関連する問題