python - 在需要一段时间才能打开的 tkinter 文件上创建加载消息
问题描述
我有一个使用 tkinter 的 Python 脚本,它在打开时运行一个需要一两分钟才能运行的查询。我想在加载完整应用程序之前创建一条消息,以便用户知道它正在加载。我的代码如下所示:
sqlStr = 'select * from exampleTable'
df = pd.read_sql(sqlStr, conn)
*Some database manipulation*
def1:
example def
w = tk.Tk()
w.mainloop()
从这段代码中,应用程序在数据库操作完成之前不会打开。有没有办法在熊猫导入数据时显示一些加载屏幕?
解决方案
您可以在单独的线程中运行您的数据库操作:
import time
import threading
import tkinter as tk
from tkinter.ttk import Progressbar
class TkApp(tk.Tk):
def __init__(self):
super().__init__()
self.progress = Progressbar()
threading.Thread(target=self.db).start()
def db(self):
self.progress.grid(row=1, column=0)
self.progress.start()
time.sleep(5) # do something with DB
self.progress.stop()
self.progress.grid_forget()
app = TkApp()
app.mainloop()
结果如下:
推荐阅读
- ruby-on-rails-4 - Rabbit MQ 消息卡在就绪状态
- oracle - PL/SQL 触发器不适用于全新插入的数据
- postgresql - 将数据加载到 postgreSQL 数据库中
- powershell - 试图找出一个脚本来使用powershell在本地网络上停止特定用户下的进程
- java - 如何将二进制/八位字节流 s3 内容保存/压缩到 zip
- r - 数数。R中每组按顺序连续出现
- apache-spark - 在 pyspark 中创建相互依赖的列
- ajax - WP 使用 Ajax 更新 post_meta 关联数组
- python - 断言错误测试类中的属性和方法
- java - 在打开应用程序之前显示模式锁定活动