4
我需要獲取鼠標相對於tkinter窗口的位置。如何獲取鼠標相對於tkinter中父控件的位置?
我需要獲取鼠標相對於tkinter窗口的位置。如何獲取鼠標相對於tkinter中父控件的位置?
一般來說,因爲它給你作爲傳入的事件對象的一部分,你應該永遠都不需要「搞定」這些信息。響應事件時,您可能只需要這些信息,以及事件給你此信息。
放更簡潔,讓你只需要從事件對象檢索信息。
下面是一個例子:
import Tkinter
class App:
def __init__(self, root):
f = Tkinter.Frame(width=100, height=100, background="bisque")
f.pack(padx=100, pady=100)
f.bind("<1>", self.OnMouseDown)
def OnMouseDown(self, event):
print "frame coordinates: %s/%s" % (event.x, event.y)
print "root coordinates: %s/%s" % (event.x_root, event.y_root)
root=Tkinter.Tk()
app = App(root)
root.mainloop()
獲取鼠標移動事件的屏幕座標(x
/y_root
)並減去窗口的屏幕座標(window.winfo_rootx()
/y()
)。
我不同意,你應該不一般需要這些信息。我正在寫一個快速的應用程序來做照片編輯......我絕對需要鼠標點擊的相對位置而不是絕對位置,因爲它是相對於顯示圖像的位置,而不是相對於屏幕,這很重要。我相信你的立場往往是正確的,但相對立場有合法用途,有很多合法用途。 – sunny 2015-09-02 19:46:04
@sunny:但是你不是隻在處理事件時需要這些信息嗎?這些信息絕對有用,只是因爲它在事件處理程序中對您很重要,所以您通常不需要獲取它。 – 2015-09-02 20:09:38
是的,所以我們同意這些信息是有用的?我以爲你說這不是有用的信息。 – sunny 2015-09-02 20:28:51