写了一个小应用程序,它由一个QT GUI模块组成,该模块又启动一个继承自ShowBase类的对象。
问题是,如果我关闭Panda App,ShowBase类会调用finalizeExit(),然后通过调用exit来关闭整个过程。
如果我通过覆盖userExit()来避免调用finalize方法,则不会删除App的资源,并且任务管理器会继续工作。
有没有办法在不叫退出的情况下关闭熊猫应用程序?
答案 0 :(得分:1)
至少在最近的Panda开发版本中,您应该能够调用base.destroy()
来关闭ShowBase并卸载(大多数)资源。在主窗口关闭时,您仍然需要覆盖finalizeExit()
以不退出应用程序。
答案 1 :(得分:0)
也许我的回答来得太晚了,但它可能对其他人有帮助。 我遇到了同样的问题,但Tkinter却没有QT。
您可以做的是在调用应用程序的类之后:
app = my_class(...)
try: app.run()
except SystemExit: base.destroy()
这可控制熊猫如何关闭应用程序。在这种情况下,它将根本不会调用finalizeExit()。 base.destroy()将破坏打开的窗口。