import tkinter as tk from tkinter.messagebox import * def setImg(label_img,img_png): label_img.configure(image=img_png) label_img.image=img_png def figure_view(root1): top1=tk.Toplevel(root1) top1.title('数据可视化窗体') top1.transient(root1) top1.geometry('600x500+500+200') img1=tk.PhotoImage(file=r'tu1.png') img2=tk.PhotoImage(file=r'tu2.png') img3=tk.PhotoImage(file=r'tu3.png') label_img=tk.Label(top1) label_img.place(x=5,y=15) def do_setImg1(): setImg(label_img,img1) def do_setImg2(): setImg(label_img,img2) def do_setImg3(): setImg(label_img,img3) but1=tk.Button(top1,text='按省市统计',command=do_setImg1) but1.pack() but2=tk.Button(top1,text='按类型统计',command=do_setImg2) but2.pack() but3=tk.Button(top1,text='按各省市综合得分统计',command=do_setImg3) but3.pack()
时间: 2024-01-02 20:03:46 浏览: 115
从你提供的代码中看不出明显的错误。你可以尝试检查一下图片文件路径是否正确。如果图片路径正确,那么可能是因为你的图片文件格式不被 `tk.PhotoImage` 支持,你可以尝试使用 `Pillow` 库来打开图片并将其转换为 `tk.PhotoImage` 支持的格式。你可以尝试修改一下代码,引入 `Pillow` 库,并使用 `Image` 和 `ImageTk` 类来打开和转换图片格式,例如:
```python
from PIL import Image, ImageTk
def figure_view(root1):
top1=tk.Toplevel(root1)
top1.title('数据可视化窗体')
top1.transient(root1)
top1.geometry('600x500+500+200')
img1=ImageTk.PhotoImage(Image.open(r'tu1.png'))
img2=ImageTk.PhotoImage(Image.open(r'tu2.png'))
img3=ImageTk.PhotoImage(Image.open(r'tu3.png'))
label_img=tk.Label(top1)
label_img.place(x=5,y=15)
def do_setImg1():
setImg(label_img,img1)
def do_setImg2():
setImg(label_img,img2)
def do_setImg3():
setImg(label_img,img3)
but1=tk.Button(top1,text='按省市统计',command=do_setImg1)
but1.pack()
but2=tk.Button(top1,text='按类型统计',command=do_setImg2)
but2.pack()
but3=tk.Button(top1,text='按各省市综合得分统计',command=do_setImg3)
but3.pack()
```
这样应该就可以正确地打开和显示图片了。