首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PyQt QApplication.aboutToQuit()

PyQt QApplication.aboutToQuit()
EN

Stack Overflow用户
提问于 2014-12-02 00:41:53
回答 1查看 5.9K关注 0票数 1

我正试图从我的应用程序类(其中一个子类为QApplication )捕获全局退出信号。以下是我尝试主要设置它的方法。

代码语言:javascript
运行
复制
def cleanUp():
    os.system('rosnode kill -a')
    sys.exit(0)

## Start Qt event loop
if __name__ == '__main__':
    app = Application(sys.argv)
    app.aboutToQuit.connect(cleanUp)
    app.exec_()

问题是,这似乎没有捕捉到我显然已经连接到的信号。

编辑

我正在使用PyQtGraph,所以最好有什么方法来捕捉全局窗口关闭吗?

代码语言:javascript
运行
复制
# The main application
class Application(QtGui.QApplication):

    def __init__(self, args):
        QtGui.QApplication.__init__(self, args)
        self.plot = pg.plot(title="UWB")
        self.raw_signal = self.plot.plot()
        self.filtered_signal = self.plot.plot()
        # Start the main loop
        self.listen()
EN

回答 1

Stack Overflow用户

发布于 2014-12-02 01:03:00

您还可以在关闭QMainWindow时重写关闭事件。这可能同样有用,取决于您的用例。

代码语言:javascript
运行
复制
# override exit event
def closeEvent(self, event):

    cleanUp()

    # close window
    event.accept()

编辑:这个最小的例子适用于我;“关闭”是在关闭绘图窗口时打印出来的。

代码语言:javascript
运行
复制
import pyqtgraph as pg
from PyQt4 import QtGui
import sys

# The main application
class Application(QtGui.QApplication):

    def __init__(self, args):
        QtGui.QApplication.__init__(self, args)
        self.plot = pg.plot(title="UWB")

    def cleanUp(self):
        print 'closing'

## Start Qt event loop
if __name__ == '__main__':
    app = Application(sys.argv)
    app.aboutToQuit.connect(app.cleanUp)
    sys.exit(app.exec_())
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27240018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档