代码之家  ›  专栏  ›  技术社区  ›  Ambrose Odongkara

在python中单击鼠标左键时,如何使对象显示在画布中?

  •  0
  • Ambrose Odongkara  · 技术社区  · 8 年前

    所以我想在python作品的画布上画一个椭圆形。(这是一个照片编辑器项目)。“c”是指我用python制作并形成tkinter程序的画布。如何生成以下代码以在程序画布中弹出一个椭圆形窗口?(另外,如果您知道如何进行鼠标按下事件,请更改“<Button-1>”至适当的标签):

    def PaintBrushWorking():
        blueBlob = c.create_oval(20, 30, 40, 60, fill = "blue")
        blueBlob.pack()
    
    c.bind_all("<Button-1>", PaintBrushWorking)
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   Bryan Oakley    8 年前

    你只需要删除对的呼叫 pack ,然后使函数接受事件参数。最后,您可能想使用 bind bind_all ,除非您真的希望它绘制椭圆形,即使您单击其他小部件,例如按钮或滚动条。

    import Tkinter as tk
    
    def PaintBrushWorking(event):
        blueBlob = c.create_oval(20, 30, 40, 60, fill="blue")
    
    root = tk.Tk()
    c = tk.Canvas()
    c.pack(fill="both", expand=True)
    
    c.bind("<Button-1>", PaintBrushWorking)
    
    root.mainloop()