(这个问题最初发布到 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 中实现类似的行为?是否有任何 Tkinter 惯用的方法来避免调用mainloop()
或wait_window()
方法(两者都是阻塞的)?