【问题标题】:How to display a QPixmap in QWebEngine?如何在 QWebEngine 中显示 QPixmap?
【发布时间】:2017-02-27 02:38:53
【问题描述】:

我正在尝试找出在 QWebEngine 框架中显示 QPixmap 或 QImage 的最佳和最有效的方法。

我的目标是在 QWebEngine 框架中显示从自定义网络摄像机加载的视频,我们有一个 C++ API,在 QWebEngine 框架中,以最大效率。因此,将帧保存到磁盘然后将它们加载到 QWebEngine 帧上,这不是一种选择。

以前,我使用 Qt WebKit,加载用 C++ 创建的 QPixmap 非常简单,因为它可以通过 Javascript 对象访问。但现在,由于多种用途,我对 QWebEngine 很感兴趣。

但是,在QWebEngine中,似乎没有办法直接将QObjects附加到框架窗口对象上。

所以我的问题是传输图像或字节数组以显示在 QWebEngine 中的最有效方法是什么?

【问题讨论】:

  • 恕我直言,这个任务根本不需要 QWebEngine。使用只是通过 update() 调用将 QPixmap 推送到某个标签的小部件。请参阅 QLabel::setPixmap() 调用。使用 QML 也没什么大不了的。我肯定知道这一点。 UI 线程上的计时器将以适用的帧速率进行推送。我实际上是用一些网络摄像头做到这一点的。

标签: javascript c++ qt qimage qpixmap


【解决方案1】:

绘制 QPixmap 的最快方法之一是 QGraphicsScene::addPixmap。这是非常舒适的方式。或者直接在 QLabel 上绘制。

用 QWebEngine 和 JS 绘制像素图真是个坏主意。它很慢,而且 WebEngine 是大型 Chromium 浏览器,所以它是 + 大约 60 mb 库。

我的目标是显示从自定义加载的视频 网络摄像头,我们有一个 C++ API

如果你说只需要这个,你不需要QWebEngine,只需要你的网络方法获取图像和QGraphicsScene进行绘制。它非常快速且非常适合视频。

但是如果你非常想要它,例如,你可以通过剪贴板粘贴带有 JS 的图像:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-27
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    相关资源
    最近更新 更多