擅长:python、mysql、java
<p>无法复制小部件,但是,如果同时创建相同的小部件,但不调用几何图形管理器,则可以稍后将其添加到屏幕:</p>
<pre><code>from tkinter import *
root = Tk()
cv = Canvas(self.root, width=300, height=300)
cv.pack()
copy = Canvas(otherframe, width=300, height=300)
t = turtle.RawTurtle(cv)
s = t.getscreen()
ct = turtle.RawTurtle(copy)
cs = ct.getscreen()
def toggledown():
if t.isdown():
t.penup()
ct.penup() #no point testing twice since they're the same
else:
t.pendown()
ct.pendown()
def goto(x, y):
t.goto(x, y)
ct.goto(x, y)
Button(self.root, text='Copy', command=copy.pack).pack()
t.speed(0)
ct.speed(0)
t.ondrag(goto) #the copy will go to the same place
s.onclick(goto)
s.onkey(toggledown, 'space')
s.listen()
mainloop()
</code></pre>
<p>在这种情况下,还可以通过为画布创建类来节省时间:</p>
^{pr2}$