我正在尝试设置自定义QGLWidget
的格式:
ViewportWidget::ViewportWidget(QWidget *parent)
: QGLWidget(parent), m_glrenderer()
{
// Change GLFormat here instead of passing it to ctor
// ==>> Ctor API remains unchanged so it can be called by Qt Designer generated classes
QGLFormat glFormat;
glFormat.setVersion(3, 2);
glFormat.setProfile(QGLFormat::CoreProfile);
glFormat.setSampleBuffers(true);
glFormat.setDoubleBuffer(true);
setFormat(glFormat); // Works but obsolete
//this->context()->setFormat(glFormat); // Does NOT work
}
但是, QGLWidget::setFormat
已过时。用Qt 5.2
替换它的正确方法是什么?
备注:
以下内容也可以正常使用:
ViewportWidget::ViewportWidget(const QGLFormat &glformat,
QWidget *parent)
: QGLWidget(glformat, parent), m_glrenderer()
{
}
问题在于它对我来说不是一个理想的解决方案,因为据我所知,如果我想将自定义QGLWidget
与Qt Designer集成,那么构造函数必须如下:
ViewportWidget::ViewportWidget(QWidget *parent)
: QGLWidget(parent), m_glrenderer()
{...}
已经尝试
this->context()->setFormat(glformat);
=>空/空GLwidget
QGLContext *ctx = this->context();
ctx->setFormat(glformat);
this->setContext(ctx);
=>崩溃应用程序