Как запустить сигнал pyqt5 при закрытии окна [дубликат]

0

Вопрос

я хочу запустить сигнал pyqt для повторного открытия меню каждый раз, когда закрываются другие окна, я думаю, что класс QMainWindow не имеет .closed сигнал, вы можете мне помочь?

import sys
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication
import Caixa
import Estoque
import Relatorio

app = QApplication(sys.argv)
menu = uic.loadUi(r'window/menu.ui')


caixa = Caixa.Window()
estoque = Estoque.Window()
relatorio = Relatorio.Window()

# gatilhos
menu.caixa.clicked.connect(lambda: caixa.open())
menu.caixa.clicked.connect(lambda: menu.close())

menu.produtos.clicked.connect(lambda: estoque.open())
menu.produtos.clicked.connect(lambda: menu.hide())

menu.relatorio.clicked.connect(lambda: relatorio.open())
menu.relatorio.clicked.connect(lambda: menu.hide())

estoque.window.exit.triggered.connect(lambda: menu.show())
caixa.window.exit.triggered.connect(lambda: menu.show())
relatorio.window.exit.triggered.connect(lambda: menu.show())

menu.show()
sys.exit(app.exec_())
pyqt5 python qt5
2021-11-23 21:24:12
1

Лучший ответ

1

Вы можете использовать обработчик "atexit". Документы atexit

В моем примере

import atexit

atexit.register(/*call your function here*/)

Поэтому, когда окно закрывается, оно регистрирует сигнал и вызывает необходимую функцию.

2021-11-24 08:12:14

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................