我是一个新的程序员,在使用类和Tkinter方面相对较新 . 我有一个问题,我的Tkinter窗口不会弹出,也不会显示任何错误 .
import Tkinter
from Tkinter import Canvas, Button
root = Tkinter.Tk()
canvas = Canvas(root, width=360, height=360, bg="white")
canvas.grid()
color = canvas.create_oval(100, 100, 160, 160, fill = "white")
def changeColor(x):
canvas.delete(color)
c = canvas.create_oval(100, 100, 160, 160)
canvas.itemconfigure(c,fill = x)
pink = Button(root, text = "This is just a button",changeColor("pink"))
pink.pack()
brown = Button(root, text = "This is brown",changeColor("brown"))
brown.pack()
root.mainloop()
我想制作一个程序,其中画布中椭圆的颜色根据按钮而变化 . 任何关于如何解决这个问题的建议都非常感谢!
1 回答
如果您的环境隐藏了您的
tkinter
错误消息,我会担心 . 如果您再遇到这种情况,我建议尽可能在IDE /环境之外运行您的代码 .无论如何这里是带有错误的代码,阻止它运行固定 .
不要在同一主窗口中使用
grid
和pack
.将
command
参数添加到Button
构造函数 .将一个函数作为参数传递给命令,我改变了你必须使用一个闭包来允许你仍然指定颜色参数 . 它基本上只是在另一个函数内部创建一个函数并返回该内部函数,并带有一些预加载状态(即
x
),以便稍后调用 .码:
另请注意,正如注释中所建议的那样,您无需删除并重新创建椭圆 . 您可以重新配置现有的一个 .