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

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日

悬赏问题

  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估
  • ¥15 java 通过反射找路径下的类,打包后就找不到
  • ¥15 通联支付网上收银统一下单接口
  • ¥15 angular有偿编写,
  • ¥15 centos7系统下abinit安装时make出错
  • ¥15 hbuildex运行微信小程序报错