列表框在tkinter中显示数据库中的表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了列表框在tkinter中显示数据库中的表相关的知识,希望对你有一定的参考价值。
有没有一种方法可以显示以表格形式从数据库中获取的数据,并且我实际上可以复制其中的单个内容?目前,我使用列表框和滚动条定义了一个功能日志,并像这样通过它循环播放:
def logs():
log = Toplevel(root)
log.title('View all customers')
con = mysql.connect(host='localhost', user='root',
password='*****', database='BOOK')
c = con.cursor()
c.execute("SELECT * FROM library")
result = c.fetchall()
for index, x in enumerate(result):
num = 0
for y in x:
lookup_label = Label(log, text=y)
lookup_label.grid(row=index+1, column=num)
num +=1
l1 = Label(log,text='ID',font=font_text)
l2 = Label(log,text='S_ID',font=font_text)
l3 = Label(log,text='S_NAME',font=font_text)
l4 = Label(log,text='B_NAME',font=font_text)
l5 = Label(log,text='Date Taken',font=font_text)
l6 = Label(log,text='Date_Returned',font=font_text)
l7 = Label(log,text='Status',font=font_text)
btn_ext = Button(log,text='Exit',font=font_text,command=log.destroy,borderwidth=2,fg='#eb4d4b')
l1.grid(row=0,column=0,padx=20)
l2.grid(row=0,column=1,padx=20)
l3.grid(row=0,column=2,padx=20)
l4.grid(row=0,column=3,padx=20)
l5.grid(row=0,column=4,padx=20)
l6.grid(row=0,column=5,padx=20)
l7.grid(row=0,column=6,padx=20)
btn_ext.grid(row=index+2,columnspan=7,ipadx=540)
如果没有列表框,还有其他替代方法吗?做桌子?在此先感谢:)
答案
您可以使用ttk.Treeview
显示数据库中的数据:
import tkinter as tk
from tkinter import ttk
import mysql.connector as mysql
def logs():
log = tk.Toplevel(root)
log.transient(root)
log.title('View all customers')
# setup treeview
columns = ('ID', 'S_ID', 'S_NAME', 'B_NAME', 'Date_Taken', 'Date_Returned', 'Status')
tree = ttk.Treeview(log, height=20, columns=columns, show='headings')
tree.grid(row=0, column=0, sticky='news')
# setup columns attributes
for col in columns:
tree.heading(col, text=col)
tree.column(col, width=100, anchor=tk.CENTER)
# fetch data
con = mysql.connect(host='localhost', user='root', password='******', database='BOOK')
c = con.cursor()
c.execute('SELECT * FROM library')
# populate data to treeview
for rec in c:
tree.insert('', 'end', value=rec)
# scrollbar
sb = tk.Scrollbar(log, orient=tk.VERTICAL, command=tree.yview)
sb.grid(row=0, column=1, sticky='ns')
tree.config(yscrollcommand=sb.set)
btn = tk.Button(log, text='Exit', command=log.destroy, width=20, bd=2, fg='#eb4d4b')
btn.grid(row=1, column=0, columnspan=2)
以上是关于列表框在tkinter中显示数据库中的表的主要内容,如果未能解决你的问题,请参考以下文章