如何解决按钮在Python Tkinter中无法正常工作
我正在编写一个程序,其中每当用户按下按钮时,圆圈就应该在窗口上绘制。但是我不知道为什么这个按钮不能正常工作。
from tkinter import *
root = Tk()
root.geometry("500x500")
myCanvas = Canvas(root)
myCanvas.pack()
def create_circle(x,y,r,canvasName):
x0 = x - r
y0 = y - r
x1 = x + r
y1 = y + r
return canvasName.create_oval(x0,y0,x1,y1)
buttonCal = Button(myCanvas,text="Submit",command=lambda: create_circle(200,200,80,myCanvas))
buttonCal.pack(padx = 5,pady = 5)
root.mainloop()
解决方法
您将按钮和椭圆形放在同一画布中。因此按钮与椭圆形重叠。
from tkinter import *
root = Tk()
root.geometry("500x500")
def create_circle(x,y,r,canvasName):
x0 = x - r
y0 = y - r
x1 = x + r
y1 = y + r
return canvasName.create_oval(x0,y0,x1,y1)
button_canvas = Canvas(root) # put the button in button_canvas or you can put
# it in the root
button_canvas.pack()
oval_canvas = Canvas(root,width=300,height=300)
oval_canvas.pack()
buttonCal = Button(button_canvas,text="Submit",command=lambda: create_circle(200,200,80,myCanvas))
buttonCal.pack()
root.mainloop()
,
用buttonCal.pack(padx = 5,pady = 5)
代替buttonCal.place(relx=0.5,rely=0,anchor=N)
可以解决问题。它以与创建椭圆相同的方式指定按钮的坐标。相比之下,buttonCal.pack()
“占据”了一个与放置的圆的坐标模型不一致的盒子模型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。