【发布时间】:2021-04-16 09:18:50
【问题描述】:
谁能帮帮我。我正在使用两个数据库(srcdb、maindb)并进行了一个 sql 查询,该查询从scrdb 获取数据并检查是否插入了新数据。如果有新数据,它会更新maindb。
我正在使用此代码使其成为实时的。 (没问题)
while True:
query.UpdateStats()
query.UpdateCounts()
我现在如何在 Tkinter 中实现上述代码我在更新函数中插入了查询,但它每隔 1 秒调用一次函数。
每当其中的循环结束时,我都需要运行查询。
root = Tk()
root.title('Title')
root.geometry("400x200")
def update():
dt_str = datetime.today().strftime("%m/%d/%y - %I:%M:%S %p")
dtCurrent_label.config(text=dt_str)
query.UpdateStats()
query.UpdateCounts()
dtCurrent_label.after(1000, update)
dtCurrent_label = Label(root, text="", fg="green", font=("", 11))
dtCurrent_label.pack(pady=(0, 10))
update()
root.mainloop()
还有如何在没有控制台的情况下运行它,它不适用于 .pyw,我不知道如果我使用 pyinstaller 是否可以工作,因为我正在使用其他 python 文件。
【问题讨论】:
-
我假设您正在使用 Windows。另外,
query.UpdateStats()和query.UpdateCounts()调用需要多少时间?如果时间很短,我认为您的程序中的其他内容是错误的。你能发布你的完整代码吗? -
是的,我正在使用 Windows。这实际上取决于是否插入了新数据。查询的主要功能是澄清 datetime(srcDb) 是否大于 mainDb 的 datetime,这就是我确定是否需要更新的方式。由于其结构复杂,我实际上无法发布查询。我必须将一些字符串值转换为 datetime 才能使其工作。 PS:我没有创建数据库,我不允许修改它。
-
好吧,如果我用
print("Updating")替换query.UpdateStats()和query.UpdateCounts(),它就可以正常工作。当您说使用.pyw运行它时它不起作用时,您是什么意思?它没有出现在您的屏幕上吗? -
替换查询是什么意思?你在更新功能上换了吗?我确实将 .py 替换为 .pyw 以使其成为 exe 文件,因此我不需要在控制台中输入来打开 tkinter,但它不起作用,我仍在尝试寻找替代方案。
-
因为我不知道
query.UpdateStats()和query.UpdateCounts()是如何工作的,所以我用一个简单的print语句替换了它们以进行调试。当我这样做时,print语句每 1 秒执行一次。
标签: python python-3.x tkinter