2
我正在研究一個拖放功能,可以讓我在canvas上移動項目。我讓它工作(種類),但我只移動一點,但是線條在屏幕上射擊(並最終關閉畫布的可見部分,所以我不能得到它,我不知道在哪裏何去何從下面是拖放我創建至今代碼:。Tkinter拖放
def onPressToMove(self, event): #get initial location of object to be moved
winX = event.x - self.workspace.canvasx(0)
winY = event.y - self.workspace.canvasy(0)
self.dragInfo["Widget"] = self.workspace.find_closest(event.x, event.y, halo = 5)[0]
self.dragInfo["xCoord"] = winX
self.dragInfo["yCoord"] = winY
def onReleaseToMove(self, event): #reset data on release
self.dragInfo["Widget"] = None
self.dragInfo["xCoord"] = 0
self.dragInfo["yCoord"] = 0
def onMovement(self, event):
winX = event.x - self.workspace.canvasx(0)
winY = event.y - self.workspace.canvasy(0)
newX = winX - self.dragInfo["xCoord"]
newY = winY - self.dragInfo["yCoord"]
self.workspace.move(self.dragInfo["Widget"], newX, newY)
dragInfo是我使用的存儲數據的字典。原本我以爲翻譯畫布座標到窗口座標會有所幫助,但它的作用與沒有的東西。
,我讀了,但是這並沒有真正回答我的問題。我的問題是,它是如此迅速地移動的原因。如果有任何東西比最輕微的運動使它在畫布上射擊並且看不見,那麼拖動它是沒有用的。 – user2148990 2013-03-17 22:08:01
@ user2148990:您是否打印出了在「移動」調用中使用的值,看看它們是否您期望它們是? – 2013-03-17 22:17:49
它總是容易忽略的簡單事情。重置起點現在已經很完美了。謝謝! – user2148990 2013-03-17 22:43:05