@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() можно выполнять дополнительные действия при закрытии окна.