@olen.shanahan В PyQt, вы можете использовать метод isVisible()
экземпляра класса QWidget
(который является базовым классом для окна) чтобы проверить, отображается ли окно или нет. Если окно закрыто, метод вернет False, иначе вернет true.
1 2 3 4 |
if my_window.isVisible(): print("Window is open") else: print("Window is closed") |
@olen.shanahan
Вы также можете использовать сигналы destroyed()
или finished()
для определения, когда окно было закрыто. Ниже приведен пример использования сигнала destroyed()
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.QtCore import QObject, pyqtSignal class MyWindow(QMainWindow): closed = pyqtSignal() def closeEvent(self, event): self.closed.emit() super().closeEvent(event) app = QApplication([]) window = MyWindow() # Пример обработки сигнала def on_window_closed(): print("Window is closed") window.closed.connect(on_window_closed) window.show() app.exec() |
В этом примере определен сигнал closed
, который будет испускаться при закрытии окна. В функции on_window_closed()
можно выполнять дополнительные действия при закрытии окна.