我试图创建一个简单的绘图程序,该程序有一个按钮,通过删除画布上的所有形状来清除画布,但是我尝试使用tkinter中内置的delete()命令,但是当我尝试运行它时,它说delete没有被定义。`我做错什么了?在
from Tkinter import *
import Tkinter
root = Tk()
class PaintBox( Frame ):
def __init__( self ):
Frame.__init__( self )
self.pack( expand = YES, fill = BOTH )
self.master.title( "Color Draw v0.2.63.23 open closed beta (Still in Alpha) greenlight edition" )
self.master.geometry( "600x600" )
self.message = Label( self, text = "Drag the mouse SLOWLY to draw" )
self.message.pack( side = TOP )
self.myCanvas = Canvas( self )
self.myCanvas.pack( expand = YES, fill = BOTH )
self.bd = (2)
self.myCanvas.bind( "<B1-Motion>", self.paint )
def paint( self, event ):
x1, y1 = ( event.x - 4 ), ( event.y - 4 )
x2, y2 = ( event.x + 4 ), ( event.y + 4 )
self.myCanvas.create_rectangle( x1, y1, x2, y2, fill = "black", tags="box")
button = Button(root, text = "Clear", command = delete(box))
button.grid(row = 1, column = 0)
PaintBox().mainloop()
以下是完整的回溯@mgilson:
^{pr2}$
以下是一些可以帮助您入门的代码:
我已经尽可能忠实于你的原始代码。在
有几件事要注意。。。在
.pack
按钮是因为在同一个小部件中使用.grid
和{delete
函数,用于清除输入框的网格。我在类的__init__
中定义了它。在command = ...
应该是一个函数。原始代码试图在command = ...
位进行函数调用。这是一个常见的错误,会导致在创建按钮时执行函数,然后再也不会执行。我使用绑定方法是因为绑定方法getself
是隐式传递的。在相关问题 更多 >
编程相关推荐