我需要知道QDockWidget是如何正常关闭的。我有一个连接到QDockWidget的串口/线程,我需要确保线程和串口正常关闭。
class SerialDock(QDockWidget):
...
def close(self):
print("Close")
self.serialport.close()
self.thread.close()
def closeEvent(self, event):
print("closeEvent")
self.serialport.close()
self.thread.close()
单击QMainWindow X按钮时,不会调用close和closeEvents。我是否必须从QMainWindow关闭调用close方法?我知道解决这个问题的唯一方法是使用QApplication.aboutToQuit信号,我真的不想记得为一个特定的小部件设置它。 QDockWidget如何被销毁或关闭?
答案 0 :(得分:1)
您可以使用destroyed
中的QDockWidget
信号:
import PyQt4.QtGui as ui
import PyQt4.QtCore as core
app = ui.QApplication([])
mw = ui.QMainWindow()
mw.setCentralWidget(ui.QTextEdit())
dw = ui.QDockWidget("Test",mw)
dw.setWidget(ui.QLabel("Content"))
mw.addDockWidget(core.Qt.RightDockWidgetArea, dw)
def onDestroy(w):
print("Do stuff here")
print(w)
dw.destroyed.connect(onDestroy)
mw.show()
app.exec_()