我有一个QML插件,里面有一个QThread。它用于捕获和显示视频帧到QMLview。
问题是:如何在窗口关闭时停止此线程?
QML
Repeater {
model: 8
CVCamScreen {
Layout.fillWidth: true
Layout.fillHeight: true
url: Controller.urlCanal(index + 1)
CustomBorder {
commonBorder: true
color: "#228e14"
commonBorderWidth: 3
}
}
}
C ++组件
class CVCamScreen : public QQuickPaintedItem
{
CVCamScreen::CVCamScreen(QQuickItem *parent):
QQuickPaintedItem(parent)
{
m_worker = new CamWorker(this);
}
CVCamScreen::~CVCamScreen()
{
m_worker->stop();
delete m_worker;
}
private:
CamWorker* m_worker; // inherits from QThread;
}
当前行为是:在窗口关闭后线程继续运行,这意味着CVCamScreen实例没有被销毁。