有没有办法检测执行当前是否在QDialog.exec()的中间?
我是DreamPie的作者,这是一个Python shell,它允许您在显示Qt GUI时运行Python代码。它通过运行Qt事件循环1/10秒,然后检查是否需要执行任何Python命令来实现。事件循环由QTimer停止,QTimer在超时后调用QApplication.quit()。
但是,如果QDialog.exec()处于活动状态,我不想调用QApplication.quit(),因为它会破坏代码。当前的解决方案是通过检查QApplication.activeModalWidget()是否为None来检查是否有活动的模式对话框。但是,我目前有一个模态对话框,它不能与QDialog.exec()一起运行,它无缘无故地阻止Python命令。
有没有办法在QDialog.exec()没有递归调用的情况下退出事件循环?
谢谢!
答案 0 :(得分:1)
您可以使用QDialog.isVisible
检查对话框是否可见。通常,模态对话框仅在执行时才可见。