用户界面- Tkinter语言 - 创建一个正方形,遵循我的鼠标位置



我必须在画布上的指针周围创建一个正方形。我想让这个正方形在我移动的时候跟随我的指针。

from tkinter import *
root = Tk()
f = Frame(root)
f.pack()
c = Canvas(f,bg = "black")
while root:
    x = c.winfo_pointerx()
    y = c.winfo_pointery()
    c.create_rectangle(x,y,(x+10),(y+10),fill = "red")
    root.mainloop()
root.mainloop()

现在当我运行这个矩形时它不会加载

您的方法将不起作用,因为一旦您调用mainloop,它将等待窗口关闭,因此它将永远不会通过循环的第一次迭代。如果你从循环中移除mainloop,它将永远不会到达(无限)循环后的mainloop

正确的方法是使用回调事件。另外,你应该移动矩形,而不是创建一堆新的矩形。试试这样做:

def callback(event):
    x, y = event.x, event.y
    c.coords(rect, x - 10, y - 10, x + 10, y + 10)
root = Tk()
c = Canvas(root)
rect = c.create_rectangle(0, 0, 0, 0)
c.bind('<Motion>', callback)
c.pack()
root.mainloop()

相关内容

  • 没有找到相关文章

最新更新