I already have a main window with a number of widgets and a QGLWidget on it.
I want to create another QGLWidget which opens as a new window.
ProjectedHand.h
#ifndef _GLWIDGET_H
#define _GLWIDGET_H
#include <QtOpenGL/QGLWidget>
#include <QDebug>
class ProjectedHand : public QGLWidget {
Q_OBJECT // must include this if you use Qt signals/slots
public:
ProjectedHand(QWidget *parent = NULL);
protected:
void initializeGL();
void resizeGL(int w, int h);
void paintGL();
};
#endif /* _GLWIDGET_H */
ProjectedHand.cpp
#include <QtGui/QMouseEvent>
#include "ProjectedHand.h"
ProjectedHand::ProjectedHand(QWidget *parent) : QGLWidget(parent) {
}
void ProjectedHand::initializeGL() {
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
}
void ProjectedHand::resizeGL(int w, int h) {
}
void ProjectedHand::paintGL() {
static bool screenOnBlank = false;
if (!screenOnBlank) {
qDebug("Painting grey-ness");
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
screenOnBlank = true;
}
}
Then, from another class, I call:
ProjectedHand *window = new ProjectedHand(NULL);
window->resize(800,600);
window->show();
It gives me a popup, but the window is not blank. It’s a window containing a distorted view of what I see on my main window.
↧