我的dataframe 有一个列 data['snap_url']为图片的uri链接,请实现,将每张图片打开放在一个界面下,每一行一张图片,并对应data['ai_te']的值在旁边
时间: 2024-02-11 12:04:28 浏览: 42
可以使用 Python 中的 Pillow 库来打开图片,并使用 tkinter 库来创建 GUI 界面。具体实现步骤如下:
1. 导入所需库:
```python
from PIL import Image, ImageTk
import tkinter as tk
```
2. 创建 GUI 界面:
```python
# 创建一个窗口
root = tk.Tk()
# 设置窗口标题
root.title("Images")
# 创建一个 Frame 用来添加图片和标签
frame = tk.Frame(root)
# 将 Frame 添加到窗口中
frame.pack()
```
3. 遍历 DataFrame 中的每一行,打开图片并显示:
```python
# 遍历 DataFrame 中的每一行
for index, row in data.iterrows():
# 打开图片
image = Image.open(row['snap_url'])
# 创建一个 ImageTk 对象
img = ImageTk.PhotoImage(image)
# 创建一个 Label 用来显示图片
label = tk.Label(frame, image=img)
# 将 Label 添加到 Frame 中
label.pack(side="left")
# 创建一个 Label 用来显示 ai_te 的值
text = tk.Label(frame, text=str(row['ai_te']))
# 将 Label 添加到 Frame 中
text.pack(side="left")
```
4. 运行 GUI 界面:
```python
# 进入主循环
root.mainloop()
```
完整代码如下:
```python
from PIL import Image, ImageTk
import tkinter as tk
# 创建一个窗口
root = tk.Tk()
# 设置窗口标题
root.title("Images")
# 创建一个 Frame 用来添加图片和标签
frame = tk.Frame(root)
# 将 Frame 添加到窗口中
frame.pack()
# 遍历 DataFrame 中的每一行
for index, row in data.iterrows():
# 打开图片
image = Image.open(row['snap_url'])
# 创建一个 ImageTk 对象
img = ImageTk.PhotoImage(image)
# 创建一个 Label 用来显示图片
label = tk.Label(frame, image=img)
# 将 Label 添加到 Frame 中
label.pack(side="left")
# 创建一个 Label 用来显示 ai_te 的值
text = tk.Label(frame, text=str(row['ai_te']))
# 将 Label 添加到 Frame 中
text.pack(side="left")
# 进入主循环
root.mainloop()
```
注意,为了让图片正常显示,你需要将 DataFrame 中的 `snap_url` 列中的图片下载到本地。同时,请根据实际情况修改代码中的 DataFrame 名称和列名。
阅读全文