У меня есть простой пользовательский интерфейс с кнопкой, после нажатия которой я должен открыть новое окно, в котором должны быть нарисованы вещи OpenGL.Я пытаюсь сделать это с QOpenGLWidget , но функции InitializeGL () и paintGL () никогда не вызываются.
Так что в основном у меня есть main с функцией, которая должна запускать все:
void test::displayOpenGLObjects
{
newOpenGLContext = std::make_unique<Visualization_OpenGL>(this);
}
Visualization_OpenGL.cpp
test::Visualization_OpenGL(QWidget *parent): QOpenGLWidget(parent)
{
QOpenGLWidget *test_window = new QOpenGLWidget();
test_window->setWindowTitle("OpenGL Visualization");
test_window->makeCurrent();
test_window->show();
}
test::initializeGL(){
...
}
test::paintGL(){
...
}
test::resizeGL(){
...
}
И заголовок:
class Visualization_OpenGL : public QOpenGLWidget, public QOpenGLFunctions
{
Q_OBJECT
public:
Visualization_OpenGL(QWidget *parent);
~Visualization_OpenGL();
protected:
void initializeGL() override;
void resizeGL(int w, int h) override;
void paintGL() override;
};
Все примеры, которые я видел, рисуют все в главном окне, и когда я это делаюпохоже, что paintGL () и initializeGL () действительно вызываются, но мне нужно отдельное окно для этого, я предполагаю, что моя проблема связана с QOpenGLWidget *test_window = new QOpenGLWidget();
, но я не уверен, как это исправить.Я супер новичок в этом, так что извините, если это вопрос супер нуб, но любая помощь будет оценена.