开发者社区 问答 正文

Python和SQL创建GUI表

在Python中运行SQL查询后,我想在使用的GUI中创建一个整洁的表。

对于SQL,我使用mysql.connector,然后将tkinter用于GUI。输出在字典或列表中,但未设置格式,只有一行文本从页面上消失了。

query = 'SELECT * FROM names' mycursor.execute(query) 尝试将其输出到页面上:

a = tk.Label(root, text=query,width=80,font=("bold", 10)) 有什么帮助吗?我想要一个带有列名称和GUI中数据的表。谢谢!

展开
收起
保持可爱mmm 2019-11-18 11:30:20 414 分享 版权
阿里云 AI 助理回答

要在Python的Tkinter GUI中以表格形式展示SQL查询结果,你可以使用ttk.Treeview组件来创建一个更加结构化的表格。下面是一个示例代码,展示了如何将查询结果以表格的形式显示在Tkinter窗口中:

首先,确保你已经安装了mysql.connector库,如果没有,请通过pip安装:

pip install mysql-connector-python

然后,你可以按照以下方式修改你的代码:

import tkinter as tk
from tkinter import ttk
import mysql.connector

# 连接数据库
mydb = mysql.connector.connect(
    host="your_host",
    user="your_user",
    password="your_password",
    database="your_database"
)
mycursor = mydb.cursor()

# 执行SQL查询
query = 'SELECT * FROM names'
mycursor.execute(query)
columns = [i[0] for i in mycursor.description]  # 获取列名
rows = mycursor.fetchall()  # 获取所有数据行

# 初始化Tkinter
root = tk.Tk()
root.title("Names Table")

# 创建Treeview组件
tree = ttk.Treeview(root, columns=columns, show="headings")

# 定义列标题和对齐方式
for col in columns:
    tree.heading(col, text=col, anchor=tk.W)  # 设置列标题
    tree.column(col, width=100, anchor=tk.CENTER)  # 设置列宽和对齐方式

# 插入数据
for row in rows:
    tree.insert("", tk.END, values=row)

# 将Treeview放置到主窗口
tree.pack(fill=tk.BOTH, expand=True)

# 运行Tkinter事件循环
root.mainloop()

# 关闭数据库连接
mydb.close()

这段代码首先执行SQL查询并获取结果,然后使用ttk.Treeview创建了一个表格,并设置了列名和数据。最后,它启动Tkinter事件循环来显示这个表格。

请记得替换your_hostyour_useryour_password以及your_database为你的实际数据库连接信息。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答