이벤트를 왼쪽 마우스 버튼에 묶는 이벤트는 어떻게 내려 졌습니까?
-
17-09-2020 - |
문제
마우스 왼쪽 버튼이 누르고있는 동안 실행될 명령이 필요합니다.
해결책
문서 표 7-1을보십시오.버튼을 누르고있는 동안 모션을 지정하는 이벤트가 있습니다. <B1-Motion>
, <B2-Motion>
등.
프레스 및 이동 이벤트에 대해서도 말하고 있지 않으면 <Button-1>
에서 활동을 시작하고 <B1-Release>
를받을 때 작업을 중지 할 수 있습니다.
다른 팁
개입 사건없이 "일어날 일이 일어날"원하는 경우 (즉, 사용자가 마우스를 이동하거나 다른 버튼을 누르거나 다른 버튼을 누르지 않고) 알려주는 것입니다.플래그를 설정 버튼을 누르면 해제 될 때 설정을 해제하십시오.폴링하는 동안 플래그를 확인하고 코드가 설정되면 코드를 실행하십시오.
여기에 요점을 설명하는 것이 있습니다.
import Tkinter
class App:
def __init__(self, root):
self.root = root
self.mouse_pressed = False
f = Tkinter.Frame(width=100, height=100, background="bisque")
f.pack(padx=100, pady=100)
f.bind("<ButtonPress-1>", self.OnMouseDown)
f.bind("<ButtonRelease-1>", self.OnMouseUp)
def do_work(self):
x = self.root.winfo_pointerx()
y = self.root.winfo_pointery()
print "button is being pressed... %s/%s" % (x, y)
def OnMouseDown(self, event):
self.mouse_pressed = True
self.poll()
def OnMouseUp(self, event):
self.root.after_cancel(self.after_id)
def poll(self):
if self.mouse_pressed:
self.do_work()
self.after_id = self.root.after(250, self.poll)
root=Tkinter.Tk()
app = App(root)
root.mainloop()
.
그러나 은 일반적으로 GUI 앱에서는 일반적으로 필요하지 않습니다.마우스가 눌려지는 동안 을 눌렀을 때 일어나는 일에 대해서만주의하십시오.이 경우 폴링 기능 대신 DO_WORK를 <B1-Motion>
이벤트에 단순히 바인딩하기 만하면됩니다.
마우스 이동 / 모션 이벤트를 사용하고 수정 자 깃발을 확인하십시오.마우스 버튼이 거기에 나타납니다.
제휴하지 않습니다 StackOverflow