gpt4 book ai didi

python - PyQt QApplication.aboutToQuit()

转载 作者:行者123 更新时间:2023-12-01 04:56:28 34 4
gpt4 key购买 nike

我正在尝试从我的应用程序类(QApplication 的子类)捕获全局即将退出信号。以下是我尝试在 main 中设置它的方法。

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,所以最好有某种方法可以捕获全局窗口关闭吗?

# 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()

最佳答案

您还可以在 QMainWindow 关闭时覆盖关闭事件。根据您的用例,这可能同样有用。

# override exit event
def closeEvent(self, event):

cleanUp()

# close window
event.accept()

编辑:这个最小的例子对我有用;关闭绘图窗口时会打印“close”。

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_())

关于python - PyQt QApplication.aboutToQuit(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27240018/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com