gpt4 book ai didi

python - 如何使 Tkinter python 脚本每 X 秒获取一次变量?

转载 作者:太空宇宙 更新时间:2023-11-03 21:39:35 39 4
gpt4 key购买 nike

首先请原谅我糟糕的编码能力。大约一周前才开始学习

无论如何,我现在正在尝试为项目的天气/时钟事物创建一个 GUI。现在我需要它,以便 GUI(我正在考虑使用 Tkinter)每秒更新一次,并且基本上从该程序中提取字符串。目前,该程序计算日出和日落的时间以及月球周期。

到目前为止,我尝试了两种方法,第一种方法,在一个脚本下运行整个程序,但它不起作用,因为 mainloop() 阻止第二天重复计算。

所以现在我希望将程序分成两部分。一个用于计算,另一个作为主要 GUI 程序。所以我所做的基本上是。

简化的计算脚本(很长所以我写了重要的部分):

今天.py

import datetime
import math
import schedule
import astral

a = Astral()

def tick():
d = datetime.datetimee.today()
second = d.second
minutes = d.minute
hour = d.hour
month = d.month
print(str(hour) + ":" + str(minute) + ":" + str(second))

def mooninfo():
global percent_illuminate
global moon_phase
moon_phase = a.moon_phase(date=datetime.date(year,month,day)
percent_illuminate = VERY LONG EQUATIONS
print("Moon is at... " + str(moon_phase))
print(percent_illuminate)

schedule.every(1).second.do(tick)
schedule.every().day.do(mooninfo)

while True:
schedule.run_pending()

对于我尝试过的 tkinter 脚本

from day import moon_phase

它开始运行程序,不间断地打印出一天中的时间,而不是仅仅导入 Moon_phase。

如果有人可以帮助我

  • 让 tkinter 脚本在每次不同的变量、秒、分钟、小时、日、月和月相发生变化时更新。
  • 或者有没有办法绕过 tkinter 的 mainloop() 并让它也运行 while True: 循环?
  • 或者任何其他更好的方法。

我看到你可以让 Tkinter 跟踪制作此类数字时钟的时间,但我需要计算,而且我也将变量发送到 Arduino(但我已经弄清楚了)。

非常感谢任何帮助,谢谢

最佳答案

您正在从函数导入变量。我认为您应该导入该类(首先将 day.py 重组为类),然后调用 Mooninfo() 方法以返回 Moon_phase 变量的值。

关于python - 如何使 Tkinter python 脚本每 X 秒获取一次变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52978636/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com