weixin_43265327 2021-08-22 22:17 采纳率: 57.1%
浏览 40
已结题

tkinter canvas按钮绑定的画图方法(picturer)画不出图,但如果不绑定,直接在主程序中执行,如图中被#的部分,则能正常画图,请问如何解决



```python
from tkinter import *
from PIL import Image,ImageTk,ImageDraw

root=Tk()
root.geometry('800x500')
frame=Frame(root)
frame.grid(row=0,column=0,rowspan=10)
hbar=Scrollbar(frame,orient=HORIZONTAL)
vbar=Scrollbar(frame,orient=VERTICAL)
cv=Canvas(frame,bg='khaki',width=600,height=400,xscrollcommand=hbar.set, yscrollcommand=vbar.set,scrollregion=(0,0,1600,1200))

hbar.pack(side=BOTTOM,fill=X)
hbar.config(command=cv.xview)
vbar.pack(side=RIGHT,fill=Y)
vbar.config(command=cv.yview)
cv.pack(side=LEFT,expand=True,fill=BOTH)

image1 = Image.open("111.jpg")
img = ImageTk.PhotoImage(image=image1)
mainImage=cv.create_image(0,0,anchor=NW,image=img)
draw = ImageDraw.Draw(image1)
cv.itemconfig(mainImage,image=img)

# the_t = Image.open("2.jpg")
# img11 = ImageTk.PhotoImage(the_t)
# hh=cv.create_image(10,80,anchor=NW,image=img11,tags=('tu',))

def picturer():
    tu = Image.open("2.jpg")
    img = ImageTk.PhotoImage(tu)
    hh=cv.create_image(10,80,anchor=NW,image=img,tags=('tu',))

bt=Button(root,text='画图',command=picturer)
bt.grid(row=0,column=1)

root.mainloop()

```

  • 写回答

1条回答 默认 最新

  • Smart-Space 2021-08-23 06:50
    关注

    尝试使用cv.img = ImageTk.PhotoImage(tu)。然后在下面的create_image中用cv.img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月31日
  • 已采纳回答 8月23日
  • 创建了问题 8月22日