python - 将信息从 MySQL 数据库打包到 tkinter 盒的最佳方式
问题描述
我创建了一个带有用户名、分数和日期的 MySQL 数据库。我想将 10 行数据打包到我制作的 tkinter 盒子上,但是我不知道最好的方法。我尝试将信息设为标签:
def print_result():
global other_information
other_information = 3
myresult = mycursor.fetchall()
for result in myresult:
global result_label
result_label = Label(text=result)
result_label.pack()
back_radio.pack()
虽然这成功地打包了 tkinter 盒子上的数据行,但当我尝试 pack_forget() 时,只有最后一行解包,其余数据留在 tkinter 盒子上。这是我的解包代码:
elif other_information == 3:
result_label.pack_forget()
back_radio.pack_forget()
display()
所以我决定尝试把它放在一个文本小部件中:
def print_result():
myresult = mycursor.fetchall()
for result in myresult:
global result_text
result_text = Text(game, height=300, width=300)
result_text.insert('1.0', result)
result_text.pack()
back_radio.pack()
然而,这只打包了一行数据,我的单选按钮不会出现。在 tkinter 盒子上显示数据行的最佳方式是什么,我将如何解压它?
谢谢!
解决方案
如果您想在 tkinter gui 上显示查询结果,那么您可以使用Scrolledtext
(最好)或任何其他Text
小部件并将结果插入到它上面。您可以使用名为tabulate
. 使用以下内容作为参考 -
from tabulate import tabulate
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
class Root(tk.Tk):
fetch_data = [(None, 21, 20, 20, 20, 20), (8, None, 8, 8, 8, 8)]
fetch_col = ['TEACHER', 'STUDENT', 'A', 'B', 'C', 'D']
def __init__(self):
super().__init__()
h_scrlbar = tk.Scrollbar(self, orient='horizontal')
h_scrlbar.pack(side='bottom', fill='x')
self.res_tbl = ScrolledText(self, font=(
'Consolas', 14), wrap='none', xscrollcommand=h_scrlbar.set)
self.res_tbl.pack(fill='both', expand=1)
h_scrlbar.config(command=self.res_tbl.xview)
pr = tabulate(Root.fetch_data, Root.fetch_col, tablefmt='psql', missingval='-')
self.res_tbl.insert(0.0, pr)
if __name__ == '__main__':
Root().mainloop()
where fetch_data
&fetch_col
可以改为从 sql 查询结果中获取。
推荐阅读
- javascript - 如何在 SlickGrid 中对服务器端的数据进行分组
- javascript - 这没有在mounted() 中定义
- android - 在 baseAdapter 上显示蓝牙 Le 设备
- javascript - 如何获得框架框顶点坐标?
- xcode - 设置条带firebase云功能
- python - 如何在 Databricks 中杀死工作
- visual-studio-code - Visual Studio Code 是否有注释菜单项和/或快捷键?
- ms-word - OfficeJS 在加载时删除标题
- nexus - Nexus - 新安装导致错误 - nexus-3.13
- tensorflow - Python 找不到 TensorFlow 模块