首页 新闻 会员 周边 捐助

tkinter从mysql读取二进制图片和文字

0
悬赏园豆:5 [待解决问题]

如何用俩列,一列显示文字一列显示图片。。。。。。。。。。。。。。。。。。。。。。

祥瑞哈哈哈的主页 祥瑞哈哈哈 | 初学一级 | 园豆:8
提问于:2023-04-02 17:09
< >
分享
所有回答(1)
0

可以使用Tkinter的Canvas组件来实现在一个窗口中同时显示文字和图片。

首先,从 MySQL 数据库中获取二进制图片和文本数据,并将其转换为 Tkinter 中的图片和文本格式。

以下是一个基本的示例代码:

python

import tkinter as tk
import mysql.connector
from PIL import Image, ImageTk

创建 MySQL 数据库连接

mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)

获取游标对象

mycursor = mydb.cursor()

查询数据

mycursor.execute("SELECT text_column, image_column FROM mytable")

获取结果集

myresult = mycursor.fetchall()

创建 Tkinter 窗口

root = tk.Tk()

创建 Canvas 组件

canvas = tk.Canvas(root, width=600, height=400)
canvas.pack()

定义行和列的位置

row = 0
col = 0

遍历结果集

for result in myresult:
# 获取文本和图片数据
text_data = result[0]
image_data = result[1]

# 将二进制数据转换为 Tkinter 图片格式
img = Image.open(io.BytesIO(image_data))
tk_img = ImageTk.PhotoImage(img)

# 在 Canvas 上添加图片和文本
canvas.create_image(col * 300, row * 200, anchor=tk.NW, image=tk_img)
canvas.create_text(col * 300 + 150, row * 200 + 100, text=text_data)

# 更新行和列的位置
if col == 0:
    col = 1
else:
    col = 0
    row += 1

运行 Tkinter 窗口

root.mainloop()
上述代码中,我们使用 mysql.connector 模块连接到 MySQL 数据库,并使用游标对象查询数据库中的数据。然后,我们遍历结果集,并将每行数据的文本和图片数据转换为 Tkinter 中的格式,并在 Canvas 组件上添加文本和图片。

注意,这个示例代码只能够在 Python3 环境下运行,并且需要安装 mysql-connector-python 和 Pillow 模块。

Technologyforgood | 园豆:7484 (大侠五级) | 2023-04-07 21:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册