【问题标题】:How to place a shape in tkinter如何在 tkinter 中放置一个形状
【发布时间】:2014-03-31 11:16:50
【问题描述】:

我可以使用 .create 方法创建一个形状,但我想知道如何将它放置在窗口上的某个位置...我尝试使用 .pack() 但出现错误。 ..请帮忙。

例如

circle = canvas.create_oval(5, 5, 40, 40, outline="blue",
                fill="green", width=2)

现在我需要在窗口的某个位置放置圆圈(.pack() 不起作用)

【问题讨论】:

    标签: python tkinter window shapes


    【解决方案1】:

    create_oval 用于创建放置椭圆。 create_oval(5, 5, 40, 40) 将在“盒子”内创建你的圆圈,其中 (5,5)(40,40) 是绘制圆圈的对角线矩形的坐标。绘制矩形的方式相同。

    编辑:如果你有x_radiusy_radius,你可以这样做:

    create_oval(x-x_radius,y-y_radius,x+x_radius,y+y_radius)
    

    要获得画布的大小,如果您还没有用已知大小实例化它(例如canvas=Canvas(self.something, width='700', height='400'),您可以使用.cget(property)x=int(canvas.cget('width'))/2y=int(canvas.cget('height'))/2 将在中间。

    this tutorial

    【讨论】:

    • 但我想让圆圈大小相同但将其放在窗口的中心...
    • TypeError: /: 'str' 和 'int' 的操作数类型不受支持 感谢顺便说一句您的帮助! :)
    • 我现在找到了解决办法...谢谢 :)
    • @user3262355,你是对的,cget 返回一个字符串。我会更正我的答案。
    【解决方案2】:

    修改自 http://effbot.org/tkinterbook/canvas.htm(这应该是你所有 Tkinter 问题的第一站):

    from Tkinter import *
    
    master = Tk()
    
    #Create the canvas and pack it
    w = Canvas(master, width=200, height=100)
    w.pack()
    
    #These will automatically be drawn on the already packed canvas
    w.create_line(0, 0, 200, 100)
    w.create_line(0, 100, 200, 0, fill="red", dash=(4, 4))
    w.create_oval(50, 25, 150, 75, fill="blue")
    
    mainloop()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-21
      • 2016-04-23
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多