2017-02-27 1 views
0

J'essaie de comprendre quelle est la meilleure et la plus efficace pour afficher une QPixmap ou une QImage dans un cadre QWebEngine.Comment afficher un QPixmap dans QWebEngine?

Mon objectif est d'afficher une vidéo en cours de chargement à partir d'une caméra réseau personnalisée, dont nous avons une API C++, dans le cadre QWebEngine, avec une efficacité maximale. Enregistrer les images sur le disque, puis les charger dans le cadre QWebEngine, n'est pas une option.

Auparavant, j'utilisais Qt WebKit et c'était assez simple de charger un QPixmap créé en C++, car il était accessible via un objet Javascript. Mais maintenant, je suis intéressé par QWebEngine en raison de multiples objectifs.

Cependant, dans QWebEngine, il semble qu'il n'y ait aucun moyen d'attacher directement QObjects à l'objet de fenêtre frame. Donc, ma question est de savoir quel est le moyen le plus efficace pour transférer une image, ou un tableau d'octets, à afficher dans QWebEngine?

+2

à mon humble avis il n'y a pas besoin de QWebEngine dans cette tâche du tout. Avec des widgets qui poussent simplement QPixmap vers une étiquette avec l'appel update(). Voir l'appel QLabel :: setPixmap(). Avec QML, ce n'est pas non plus un gros problème. Et je le sais à coup sûr. Une minuterie sur le fil de l'interface utilisateur fera pousser avec la fréquence d'image applicable. Je le fais précisément avec une caméra réseau. – AlexanderVX

Répondre

2

QGraphicsScene :: addPixmap est l'une des méthodes les plus rapides pour dessiner QPixmap. Et c'est très confortable. Ou simplement dessiner sur QLabel. Dessin pixmap avec QWebEngine et JS est vraiment mauvaise idée. Il est lent et WebEngine est un grand navigateur Chromium sous le capot, c'est donc + environ ~ 60 mb de bibliothèques.

Mon but est d'afficher une vidéo qui est en cours de chargement à partir d'une caméra réseau personnalisée , que nous avons une API C++

Si vous avez besoin que ce que vous avez dit, vous n'avez pas besoin QWebEngine, seulement votre méthode de réseau pour obtenir l'image et QGraphicsScene pour dessiner. C'est vraiment rapide et bon pour la vidéo.

Mais si vous le voulez tant que vous pouvez, par exemple, l'image de coller avec JS dans le presse-papiers :)