我正在编写使用AnyEvent计时器的Perl / Tk程序。如果计时器处于活动状态,我在关闭窗口时遇到问题。我把这个窗口关闭了处理程序:
$self -> {window} -> protocol( 'WM_DELETE_WINDOW' => sub {
undef $self -> {timer};
$self -> {window} -> destroy;
});
如果关闭窗口时计时器处于活动状态,则计时器停止,窗口关闭,但MainLoop不会停止。怎么了?
答案 0 :(得分:2)
根据AnyEvent::Impl::Tk
文档,创建隐藏的Tk MainWindow以使事情正常工作。但似乎这个隐藏的窗口永远不会被自动销毁。作为一种解决方法,您可以自己完成:
$AnyEvent::Impl::Tk::mw->destroy;