Pie*_*BdR 6 c++ opengl user-interface qt4 dynamic
在我的应用程序中,用户可以更改OpenGL格式的属性(即双缓冲,多重采样,各种缓冲区的深度,......).
目前,我的应用程序中只有一个QGLWidget,如果用户更改了任何内容,我会销毁并重新创建窗口小部件.
现在,我想拥有多个小部件.因此,如果格式改变,我需要销毁/重新创建所有小部件.由于小部件可以采用各种配置,因此很难破坏/重新创建它们.那么有没有办法在运行时更改QGLWidget的格式?
或者,有没有办法用另一个替换一个小部件?(即销毁一个小部件并将一个新小部件准确放置在它所用的位置)
这可能有效:
QGLFormat newFormat;
newFormat.setDoubleBuffer(true);
// ...
theGLWidget->context().setFormat(newFormat);
Run Code Online (Sandbox Code Playgroud)
编辑:您也可以QGLWidget::setFormat直接调用,但它已经过时并且可能并不总是有效。我认为重新创建小部件更安全。方法如下:将您的 GL 小部件放入子布局(任何类型 - 例如 QVBoxLayout)中,该子布局仅包含您的 GL 小部件。当您想用新的 GL 小部件替换它时,请删除旧的小部件,然后将新小部件插入该子布局中。
| 归档时间: |
|
| 查看次数: |
2128 次 |
| 最近记录: |