为 QtWebEngineProcess 设置参数

Setting arguments for QtWebEngineProcess

本文关键字:参数 设置 QtWebEngineProcess      更新时间:2023-10-16

我正在编写一个应用程序来使用 QT 启动展台 Web 应用程序,但我遇到了非常低的性能。通过使用chromium,我能够通过添加一些命令行参数(--disable-gpu-blacklist其中之一(来解决这个问题。

我相信这些参数可以传递给QtWebEngineProcess,但我找不到方法,因为它是由Qt应用程序自动启动的。

那么,我该怎么做呢?

使用命令行参数读取:

您可以使用以下命令通过命令行作为参数传递:

your_app --ignore-gpu-blacklist

或者将其添加到 argc 和 argv 中:

#include <QApplication>
#include <QWebEngineView>
int main(int argc, char *argv[])
{
    // https://stackoverflow.com/a/43373070/6622587
    std::vector<char*> new_argv(argv, argv + argc);
    new_argv.push_back(const_cast<char *>("--ignore-gpu-blacklist"));
    new_argv.push_back(nullptr);
    argv = new_argv.data();
    argc = argc + 1;
    QApplication a(argc, argv);
    QWebEngineView w;
    w.load(QUrl("chrome://gpu"));
    w.show();
    return a.exec();
}

它也可以通过环境变量进行设置:

QTWEBENGINE_CHROMIUM_FLAGS="--ignore-gpu-blacklist" ./your_app

qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--ignore-gpu-blacklist");
QApplication a(argc, argv);