基本的に私はtoasterboxを使用しています。 30秒ごとにトースターボックスがポップアップします。コードは次のようになりますToasterBoxの問題は、タイマーに参加させたり、スレッドがタイマーでPythonで終了するのを待たせることができますか?
event = threading.Event()
#############################################
bWidth = 200
bHeight = 100
tb = TB.ToasterBox(self, TB.TB_COMPLEX, TB.DEFAULT_TB_STYLE, TB.TB_ONTIME)
tb.SetPopupSize((bWidth,bHeight))
tb.SetPopupPosition((1600-bWidth,900-bHeight))
tb.SetPopupPauseTime(4000)
tb.SetPopupScrollSpeed(8)
##############################################
while true:
showPopup(tb,name,amount,progress,link)
tb.Play()
event.wait(30)
これはあなたに考えを与えるはずです。とにかく問題が発生すると、トースターボックスがポップアップしますが、tb.play()はブロックされません。アニメーションを処理するタイマーが生成され、スレッドはすぐに待機関数とブロックに進み、トースターボックスは決して閉じません。それをブロックするためにコードを変更する方法はありますか?または、これを行うためのよりよい方法があります。 tb.play()を実行するために新しいスレッドを作成しようとしましたが、メインスレッドからしか実行できないというエラーがスローされました。ソースを含むトースターの詳細はこちらToasterbox