(この質問はもともとpython-tkinter メーリング リストに投稿されたものです)
Tkinter を使用して、Windows .NET アプリケーションからノンブロッキング (またはモードレス) ウィンドウの動作を複製しようとしています。
私が持っているアプリケーションは、何らかのイベント (非 GUI イベントである可能性があります) に応答して新しいウィンドウを表示し、新しいウィンドウを表示したまま実行を続けます。
関連するコードは次のとおりです。
private void foo(object sender, EventArgs e)
{
Form1 f = new Form1();
f.Show(); // displays a window and continues
Console.WriteLine("Form created");
}
重要な部分は、.NET クラスのShow() メソッドの呼び出しSystem.Windows.Forms.Form/Control
です。
このfoo()
関数は、何らかのシグナルへの応答として非 GUI アプリケーションから呼び出されたり、C++ アプリケーションから呼び出されたりする場合もあります。
ポイントは、イベントを明示的に待機する必要がなく、ウィンドウがモードレスであることです。
Tkinterで同様の動作を実現するにはどうすればよいですか? mainloop()
またはメソッドの呼び出しを回避する Tkinter の慣用的な方法はありますかwait_window()
(どちらもブロックされています)。