在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中数据的表。谢谢!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要在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_host
、your_user
、your_password
以及your_database
为你的实际数据库连接信息。