qml并没有提供属性或者方法获取窗口句柄,我们需要一些转换技巧,请看下面代码:
QQmlApplicationEngine engine;
const QUrl url(QStringLiteral("qrc:main.qml"));
QObject::connect(&engine,&QQmlApplicationEngine::objectCreated,
&app,[url](QObject *obj,const QUrl &objUrl) {
if(url == objUrl) {
//获取窗口句柄
QWindow *wrindow = qobject_cast<QWindow *>(obj);
WId wid = window ->winId();
}
},Qt:QueuedConnection);
engine.load (url);