我正在尝试将 YouTube 视频嵌入到QWebEngineView小部件中,但是,该视频未播放,并且我收到以下消息:
“视频请在 YouTube 上观看”

我尝试使用不同的视频,但总体上出现了相同的错误,我还尝试设置一些设置,例如:
QWebEngineView* view = new QWebEngineView();
view->setHtml(R"(<iframe width="800" height="600" src="https://www.youtube.com/embed/TodEc77i4t4" title="Qt 6 - The Ultimate UX Development Platform" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>)");
view->settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true);
view->settings()->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true);
view->settings()->setAttribute(QWebEngineSettings::AllowRunningInsecureContent, true);
view->settings()->setAttribute(QWebEngineSettings::SpatialNavigationEnabled, true);
view->settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, true);
view->settings()->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, true);
view->show();
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
我没有使用HTML,我以这种方式进行测试,它向我显示了视频:
我在主窗口中添加此代码:
QWidget *wgt = new QWidget(this);
QGridLayout *gridLayout = new QGridLayout(wgt);
wgt->setStyleSheet(QString::fromUtf8("border: 1px solid black;\n"
"border-radius: 25px;background-color:black;"));
ui->centralwidget->layout()->addWidget(wgt);
QWebEngineView* view = new QWebEngineView(wgt);
view->setWindowTitle("Qt 6 - The Ultimate UX Development Platform");
view->setUrl(QUrl("https://www.youtube.com/embed/TodEc77i4t4"));
view->settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true);
view->settings()->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true);
view->settings()->setAttribute(QWebEngineSettings::AllowRunningInsecureContent, true);
view->settings()->setAttribute(QWebEngineSettings::SpatialNavigationEnabled, true);
view->settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, true);
view->settings()->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, true);
wgt->layout()->addWidget(view);
Run Code Online (Sandbox Code Playgroud)
这是结果:
对于您的小部件的样式,请查看Qt 样式表参考,它类似于 CSS,您可以使用它。
例如,您可以添加以下内容:
view->setStyleSheet(QString::fromUtf8("border: 1px solid black;\n"
"border-radius: 25px;"));
Run Code Online (Sandbox Code Playgroud)
QWebEngineView 对象没有获得样式,因此我将其添加到帮助器小部件中并向其添加样式。
你可以从这里克隆它:
https://gitlab.com/ParisaHR/stackoverflow_qwebengineview
| 归档时间: |
|
| 查看次数: |
354 次 |
| 最近记录: |