如何在QGraphicsView中为QOpenGLWidget启用抗锯齿功能?

时间:2015-02-09 19:10:24

标签: qt qgraphicsview qt5.4

我已经通过QGraphicsProxyWidget将QOpenGLWidget添加到QGraphicsView(不要使用setviewport):

QSurfaceFormat format= QSurfaceFormat();
format->setSamples(4); //<== widget show black screen if samples =4, 1 is ok but not antialiasing
m_glWidget->setFormat(format);

MyGraphicsProxyWidget* proxy= new MyGraphicsProxyWidget();
proxy->setWidget(m_glWidget);
//add to scene
scene->addItem(proxy);

我尝试了一些方法,但没有工作: 如果samples = 4,glwidget显示黑屏,但samples = 1可以,但不是抗锯齿。 那么如何在QGraphicsView中为QOpenGLWidget(由GraphicsproxyWidget添加)启用抗锯齿?

有什么帮助吗?谢谢!

1 个答案:

答案 0 :(得分:3)

在qapplication初始化

下将代码附加到main.cpp之外
QSurfaceFormat fmt;
fmt.setSamples(10); 
QSurfaceFormat::setDefaultFormat(fmt);