将线程杀入qml插件

时间:2014-10-09 18:00:07

标签: c++ qt qml qthread

我有一个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实例没有被销毁。

0 个答案:

没有答案