qml中如果捕获窗口关闭和程序结束事件
Unsolved
Chinese
-
在qml如何捕获程序结束事件,然后清理内存。比如下面的代码,创建了一个线程,不知道在哪调用 清理线程函数j.join()。测试了QQmlApplicationEngine::quit不起作用
int main(int argc, char* argv[]) { std::thread j([]() { }); QGuiApplication app(argc, argv); QQmlApplicationEngine engine; const QUrl url(u"qrc:/untitled1/Main.qml"_qs); QObject::connect( &engine, &QQmlApplicationEngine::objectCreationFailed, &app, [&](const QUrl& url) { j.join(); QCoreApplication::exit(-1); }, Qt::QueuedConnection ); //以下代码捕获quit事件,但是永远不会被调用。 QObject::connect( &engine, &QQmlApplicationEngine::quit, &app, [&]() { j.join(); }, Qt::QueuedConnection ); engine.load(url); return app.exec(); }