2011-12-28 1 views
-4

Entry with 6 Button버튼 콘텐츠

내 질문에

내가 필요하지 않은 내가 그것을 그 버튼의 문자 이상으로 엔트리 안에 붙여 넣기하는 버튼을 클릭하면 내가 그것을 구현할 수있는 방법입니다 그것을위한 코드. 내가 원하는 건이 일을하는거야.

+4

GUI에 무엇을 사용하는지 지정하지 않으면 대답하기가 어렵습니다. 또한 작업 할 수있는 자체 포함 된 테스트 가능한 코드 스 니펫을 포함시켜야합니다. – mac

+0

내가 gui tkinter 모듈로 사용 – marco

+1

좋은 슬픔 사람들! 이 질문은 그렇게 많은 다운 - 득표를하는 것만 큼 나쁘지 않습니다 (이 글을 쓰는 동안 7 개의 다운 - 핏이 있습니다). 질문은 잘못 작성되었지만 답변을 찾는 것은 여전히 ​​쉽습니다. 나는 점수가 -1 점으로 충분하다고 생각합니다. –

답변

1

이것은 Tkinter의 엔트리 위젯을 사용하여 두 개의 버튼 그것을 어떻게 보여

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

코드에서 문제는 m 또는 b를 클릭하는 것입니다. 하지만 내 문제는 내가 플러스 b 키보드 문자를 결합하여 심지어 – marco

+0

입력을 포함 할 수있는 기회가 귀하의 게시물을 잘 할 방법에 대한 아이디어를 요청하고 다른 한편으로는이 especification은 귀하의 post ... 어쨌든 쉽습니다. self.text.delete를 삭제하면 원하는대로 작동합니다. – joaquin