Я использую QGLWidget в проекте с Qt5 на Ubuntu. Класс, который расширяет QGLWidget, очень прост, он просто переопределяет две его виртуальные защищенные функции:
Заголовок:
class MyGLWidget : public QGLWidget {
Q_OBJECT
public:
explicit MyGLWidget(QWidget *parent = 0);
protected:
void initializeGL();
void paintGL();
};
Реализация:
MyGLWidget::MyGLWidget(QWidget *parent) :
QGLWidget(parent) {
}
void MyGLWidget::initializeGL() {
glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
}
void MyGLWidget::paintGL() {
glClear(GL_COLOR_BUFFER_BIT);
}
Я создал его экземпляр и вызвал его метод show, ожидая, что появится красное окно, но я получил следующее:
Окно прозрачное, оно отображает все, что находится под ним.
В чем действительно проблема, и как я могу это исправить? (Я использую Ubuntu 14.04 64bit, Qt5.3 устанавливается напрямую с qt-project.org)
glViewport
изresizeGL
? - person pezcode   schedule 13.06.2014