Python에서 Tkinter 버튼의 명령 방법 변경
-
09-06-2019 - |
문제
새 Button 객체를 생성했지만 command
생성 시 옵션.객체가 생성된 후 Tkinter에서 명령(onclick) 기능을 변경하는 방법이 있습니까?
해결책
그렇지만 엘리 코트라이트의 프로그램은 잘 작동할 것입니다. 그러나 실제로 원하는 것은 인스턴스화할 때 설정할 수 있었던 속성을 인스턴스화 후에 재구성하는 방법일 뿐입니다².그렇게 하는 방법은configure() 메소드를 사용하는 것입니다.
from Tkinter import Tk, Button
def goodbye_world():
print "Goodbye World!\nWait, I changed my mind!"
button.configure(text = "Hello World!", command=hello_world)
def hello_world():
print "Hello World!\nWait, I changed my mind!"
button.configure(text = "Goodbye World!", command=goodbye_world)
root = Tk()
button = Button(root, text="Hello World!", command=hello_world)
button.pack()
root.mainloop()
¹ 마우스만 사용하는 경우 "괜찮습니다";탭 이동과 버튼의 [Space] 또는 [Enter] 사용에 관심이 있다면 키 누르기 이벤트도 구현해야 합니다(기존 코드 복제).설정 command
옵션을 통해 .configure
훨씬 쉽습니다.
² 인스턴스화 후에 변경할 수 없는 유일한 속성은 name
.
다른 팁
확신하는;그냥 사용 bind
버튼이 생성된 후 콜백을 지정하는 메서드입니다.방금 아래 예제를 작성하고 테스트했습니다.이 작업에 대한 좋은 튜토리얼을 찾을 수 있습니다. http://www.pythonware.com/library/tkinter/introduction/events-and-bounds.htm
from Tkinter import Tk, Button
root = Tk()
button = Button(root, text="Click Me!")
button.pack()
def callback(event):
print "Hello World!"
button.bind("<Button-1>", callback)
root.mainloop()
제휴하지 않습니다 StackOverflow