[解決済み] Tkinterのイベントループと一緒に独自のコードを実行するにはどうすればよいのでしょうか?
2022-05-14 22:21:20
質問
私の弟はプログラミングを始めたばかりで、科学博覧会のプロジェクトのために、空を飛ぶ鳥の群れのシミュレーションをしています。彼はほとんどのコードを書き、それはうまく動作しますが、鳥が移動する必要があります。 刻々と .
しかし、Tkinterはそれ自身のイベントループのために時間を独占してしまうので、彼のコードは実行されないのです。そのため
root.mainloop()
は実行され、実行され、実行され続け、そして実行されるのはイベントハンドラだけです。
彼のコードをメインループと一緒に実行させる方法はありますか(マルチスレッドなしで、混乱するので、これは単純に保つべきです)、もしそうなら、それは何ですか?
今現在、彼は醜いハックを思いつき、彼の
move()
関数を
<b1-motion>
に変更することで、ボタンを押したままマウスを動かしている限り、動作するようにしました。しかし、もっと良い方法があるはずです。
どのように解決するのですか?
を使用します。
after
メソッドを
Tk
オブジェクトを作成します。
from tkinter import *
root = Tk()
def task():
print("hello")
root.after(2000, task) # reschedule event in 2 seconds
root.after(2000, task)
root.mainloop()
の宣言とドキュメントは以下の通りです。
after
メソッドの宣言とドキュメントです。
def after(self, ms, func=None, *args):
"""Call function once after given time.
MS specifies the time in milliseconds. FUNC gives the
function which shall be called. Additional parameters
are given as parameters to the function call. Return
identifier to cancel scheduling with after_cancel."""
関連
-
opencvとpillowを用いた顔認証システム(デモあり)
-
Pythonコンテナのための組み込み汎用関数操作
-
python string splicing.join()とsplitting.split()の説明
-
python implement mysql add delete check change サンプルコード
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】WindowsでPythonスクリプトをサービスとして実行するにはどうすればいいですか?
-
[解決済み] C#で独自のイベントを作るには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python jiabaライブラリの使用方法について説明
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].