工作中,有的老版本代码是用QtWidgets来实现的,在后期的OTA实现中,由于种种原因,比如用qml来实现更方便等原因,某些功能的开发确用qml语言来实现,这就涉及到了QWidget与Qml文件的相互嵌入,以及交互问题。 笔者遇到的需求是,做一个语音助手,窗口会实时显示自己说的话,以及一些对话内容,比如听故事界面,要实现一种无边框,圆角的对话框: 按照常规做法,因为代码是QtWidget框架写的,所以我应该也用QWidgets来实现就好了,但是考虑到也写效果的实现和最近一直在用qml开发,就尝试用qml语言来实现了。 加载qml文件,有几种方式: 第一种 QQmlApplicationEngine QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); 其中main.qml 可以以Window作为根元素,这个时候QML就完全拥有了控制权,可以直接设置窗体的标题、尺寸等信息; 第二种 QQuickView QQuickView最常见的用法如下: QQuickView...