J'ai un QGraphicsView affichant un QGraphicsScene dans lequel j'aimerais utiliser un QGLWidget comme fenêtre d'affichage. Le Qt documentation m'amène à croire que c'est un simple comme donner à QGraphicsScene un QGLWidget comme une fenêtre d'affichage, mais j'ai un écran noir quand j'essaye.L'utilisation d'un QGLWidget comme fenêtre pour les résultats de QGraphicsView en écran noir
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QGraphicsPixmapItem>
#include <QGLWidget>
class View : public QGraphicsView
{
Q_OBJECT
public:
explicit View(QWidget *parent = 0) :
QGraphicsView(parent)
{
QGraphicsPixmapItem *pixmapItem = new QGraphicsPixmapItem(QPixmap(":/images/chart.png"));
QGraphicsScene *scene = new QGraphicsScene();
scene->addItem(pixmapItem);
setScene(scene);
setViewport(new QGLWidget());
}
};
Si je commente la dernière des lignes relatives à la QGLWidget alors mon pixmap affiche bien, mais avec eux, je ne vois qu'un écran noir. J'ai également remarqué que l'utilisation de CPU est significativement plus élevée quand QGLWidget est dedans. J'ai utilisé avec succès QGLWidgets dans le passé (jamais avec un QGraphicsView cependant) ainsi je pense qu'OpenGL fonctionne lui-même correctement. J'ai essayé de changer la couleur claire pour essayer de voir un changement mais il reste noir. J'ai aussi essayé à la fois en utilisant Qt 4 et Qt 5.