用python写一个窗体显示图片1.png
时间: 2024-02-26 07:58:48 浏览: 148
好的,下面是代码示例:
```python
import tkinter as tk
from PIL import ImageTk, Image
# 创建窗体
root = tk.Tk()
root.title("显示图片")
root.geometry("300x300")
# 打开图片并转换为Image对象
image = Image.open("1.png")
img = ImageTk.PhotoImage(image)
# 创建标签并显示图片
label = tk.Label(root, image=img)
label.pack()
# 运行窗体
root.mainloop()
```
请将图片1.png放在当前目录下,运行代码即可显示图片。
相关问题
python读取桌面Excel文件‘images.xlsx’,并且做一个窗体,里面输入行号和列号,就可以显示出对应的单元格里面的图片,图片格式是png
在Python中,你可以使用pandas库来读取Excel文件,然后结合tkinter库创建一个简单的图形用户界面(GUI),让用户输入行号和列号获取并显示图片。以下是基本步骤:
首先,确保安装了所需的库:
```bash
pip install pandas openpyxl tk
```
然后,编写Python代码:
```python
import tkinter as tk
from tkinter import messagebox
import pandas as pd
from PIL import ImageTk, Image
# 读取Excel文件
def load_excel():
excel_file = r"C:\Users\your_username\Desktop\images.xlsx" # 请替换为你的真实路径
df = pd.read_excel(excel_file)
img_df = df.iloc[:, 0] # 假设第一列是图片路径,如果是其他列,请相应调整
return img_df
# 显示图片
def show_image(row_num, col_num):
img_path = img_data.iloc[row_num][col_num]
try:
image = Image.open(img_path)
resized_img = image.resize((400, 400)) # 设置图片大小,根据需要调整
photo = ImageTk.PhotoImage(resized_img)
label.config(image=photo)
label.image = photo
except Exception as e:
messagebox.showerror("Error", f"无法打开图片:{str(e)}")
# 创建窗口和控件
root = tk.Tk()
img_data = load_excel()
row_label = tk.Label(root, text="行号")
row_label.grid(row=0, column=0)
row_entry = tk.Entry(root)
row_entry.grid(row=0, column=1)
col_label = tk.Label(root, text="列号")
col_label.grid(row=1, column=0)
col_entry = tk.Entry(root)
col_entry.grid(row=1, column=1)
button = tk.Button(root, text="显示图片", command=lambda: show_image(int(row_entry.get()), int(col_entry.get())))
button.grid(row=2, columnspan=2)
label = tk.Label(root) # 存储图片标签
label.pack()
root.mainloop()
```
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()
从你提供的代码中看不出明显的错误。你可以尝试检查一下图片文件路径是否正确。如果图片路径正确,那么可能是因为你的图片文件格式不被 `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()
```
这样应该就可以正确地打开和显示图片了。
阅读全文