我有一个使用 QtWebEngine 的自定义浏览器,我可以从命令行启动它并向其传递一个网站。它还有一个
--version
选项,如果设置该选项,则会打印出所使用的浏览器版本、QtWebengine 版本和 chromium 版本。然而,要专门读取 chromium 版本,浏览器必须启动 Qt WebEngine 实例来调用单个函数,以便检索版本。仅显示版本大约需要 1-2 秒的时间。
还有其他方法可以检索 chromium 版本吗?目前我检索版本的代码如下所示:
QApplication dummyapp(size, argvec.data());
// read chromium version in userAgent string
QString userAgent(QWebEngineProfile::defaultProfile()->httpUserAgent());
auto match = QRegularExpression("QtWebEngine/(\\S+)\\s*Chrome/(\\S+)").match(userAgent);
QString webengineVersion = match.hasMatch() ? match.captured(1) : "unknown";
QString chromiumVersion = match.hasMatch() ? match.captured(2) : "unknown";
我可以轻松找到浏览器和网络引擎版本,而无需先启动网络引擎,但铬不行。 您可以假设运行浏览器的系统上未安装 chrome 或 chromium 本身。
仅运行上面的代码而不启动 QApplication 是行不通的。 我还尝试在整个系统上查找版本字符串,但在任何地方都没有找到它
sudo grep -Rnw / -e 87.0.4280.144
。
正如@Botje在Qt6.2+中提到的,您可以使用https://doc.qt.io/qt-6/qtwebenginecoreglobal-h.html#qWebEngineChromiumVersion。