关闭窗口时如何触发pyqt5信号[重复]
Posted
技术标签:
【中文标题】关闭窗口时如何触发pyqt5信号[重复]【英文标题】:How to trigger a pyqt5 signal when closing a window [duplicate] 【发布时间】:2021-11-23 21:24:12 【问题描述】:我想在每次关闭其他窗口时触发 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_())
【问题讨论】:
【参考方案1】:您可以使用“atexit”处理程序。 atexit Documents
在我的例子中
import atexit
atexit.register(/*call your function here*/)
所以当窗口关闭时,它会注册一个信号并调用需要的函数。
【讨论】:
以上是关于关闭窗口时如何触发pyqt5信号[重复]的主要内容,如果未能解决你的问题,请参考以下文章