Qopenglwidget在新窗口中
QOpenGLWidget in new window
我有一个带有按钮的简单UI,在按下按钮后,我应该打开一个新窗口,应在其中绘制opengl的东西。我正在尝试使用Qopenglwidget 进行此操作,但是initializegl()和paintgl()函数从未被调用。
基本上,我拥有一个可以启动所有内容的功能的主要功能:
void test::displayOpenGLObjects
{
newOpenGLContext = std::make_unique<Visualization_OpenGL>(this);
}
可视化_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;
};
我看到的所有示例都在mainwindow上绘制所有内容,当我这样做时,确实调用了paintgl()和initializegl(),但我需要为此有一个单独的窗口猜测我的问题涉及QOpenGLWidget *test_window = new QOpenGLWidget();
,但我不确定如何解决。我对此非常新鲜,所以很抱歉,如果这是一个超级菜鸟的问题,但是任何帮助都将不胜感激。
在另一个构造函数中打开一个小部件很奇怪。您可以在按钮单击插槽中创建一个新的小部件。例如:
void MainWindow::OnButtonClicked()
{
Visualization_OpenGL* test_window = new Visualization_OpenGL();
test_window->setWindowTitle("OpenGL Visualization");
test_window->makeCurrent();
test_window->show();
}
然后将调用Visualization_OpenGL::initializeGL
,Visualization_OpenGL::resizeGL
和Visualization_OpenGL::paintGL
。
相关文章:
- 如何使用Qt在新窗口中显示视频帧
- Qt5 C++将新窗口与Qt设计器链接
- 在SFML(C++)中启动一个新窗口
- Qt将鼠标移动事件转移到新窗口
- 在Clion的新窗口中创建一个新项目
- 如何在Qt中打开新窗口的情况下更改UI?
- 朱奇 - 制作一个新窗口
- 设置 VLC drawable-hwnd 仍会创建一个新窗口
- 运行 SFML 图形后看不到新窗口
- 如何在Mac上打开Carbon中的C++新窗口
- 在Qt中单击QTableView中行的特定单元格时,打开一个新窗口
- 具有控制台输出且没有新窗口的 Win32 应用程序
- C++输出信息到新窗口
- qwebview,如何确定此链接是否为新窗口
- 离开全屏后,QVideOwidget是新窗口
- CreateProcess( ) 不会创建一个带有CREATE_NEW_CONSOLE标志的新窗口 - C/C++
- Qt正在设置新窗口
- 使用SW_HIDE样式使浏览器打开新窗口
- 从窗口 QT 打开新窗口
- C++ WinApi 绘制图像.jpg到新窗口