Как проверить закрыто ли окно в pyqt?

Пользователь

от olen.shanahan , в категории: Python , 2 года назад

Как проверить закрыто ли окно в pyqt?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dorothea_stoltenberg , 2 года назад

@olen.shanahan В PyQt, вы можете использовать метод isVisible() экземпляра класса QWidget (который является базовым классом для окна) чтобы проверить, отображается ли окно или нет. Если окно закрыто, метод вернет False, иначе вернет true.

1
2
3
4
if my_window.isVisible():
    print("Window is open")
else:
    print("Window is closed")

Пользователь

от jerad.kuphal , год назад

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