簡體   English   中英

如何使Tkinter python腳本每X秒獲取一次變量?

[英]How to make Tkinter python script take variable every X seconds?

首先,請原諒我糟糕的編碼技能。 大約一周前才開始學習

無論如何,我現在正在嘗試為此項目的天氣/時鍾事件創建一個GUI。 現在我需要它,以便我在考慮使用Tkinter的GUI每秒更新一次,並且基本上從該程序中提取字符串。 當前,該程序將計算日出和日落時間以及農歷周期。

到目前為止,我嘗試了兩種方法,第一種方法是在一個腳本下運行整個程序,但是由於mainloop()阻止了第二天重復進行計算,因此無法正常工作。

所以現在我希望將程序分為兩部分。 一個帶有計算,另一個作為主GUI程序。 所以我所做的基本上是。

簡化的計算腳本(很長,所以我寫了重要的部分):

它的day.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,而是開始運行程序,打印出一天中的不間斷時間。

所以如果有人可以幫助我

  • 每次更改不同的變量(秒,分鍾,小時,天,月和moon_phase)時,讓tkinter腳本進行更新。
  • 還是有辦法繞過tkinter的mainloop()並使它在True:loop時運行?
  • 或任何其他更好的方法。

我看到您可以讓Tkinter跟蹤制作數字時鍾的時間,但是我需要計算,而且我也將變量發送到Arduino(但是我已經知道了)。

任何幫助,不勝感激,謝謝

您正在從函數中導入變量。 我認為您應該導入該類(首先將day.py重組為一個類),然后調用mooninfo()方法以返回moon_phase變量的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM