gpt4 book ai didi

c++ - QOpenGLWidget显示黑屏

转载 作者:行者123 更新时间:2023-11-28 05:54:57 28 4
gpt4 key购买 nike

我尝试了此处描述的 QOpenGLWidget 示例: https://stackoverflow.com/a/31524956/4564882

但我只得到一个黑色小部件。代码完全一样。这是与 QopenGLWidget 关联的代码:

OGLWidget::OGLWidget(QWidget *parent)
: QOpenGLWidget(parent)
{

}

OGLWidget::~OGLWidget()
{

}

void OGLWidget::initializeGL()
{
glClearColor(0,0,0,1);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
glEnable(GL_COLOR_MATERIAL);
}

void OGLWidget::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glBegin(GL_TRIANGLES);
glColor3f(1.0, 0.0, 0.0);
glVertex3f(-0.5, -0.5, 0);
glColor3f(0.0, 1.0, 0.0);
glVertex3f( 0.5, -0.5, 0);
glColor3f(0.0, 0.0, 1.0);
glVertex3f( 0.0, 0.5, 0);
glEnd();
}

void OGLWidget::resizeGL(int w, int h)
{
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45, (float)w/h, 0.01, 100.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0,0,5,0,0,0,0,1,0);
}

我在这里尝试了示例:https://doc.qt.io/archives/qt-5.3/qtopengl-2dpainting-example.html。它工作正常(尝试两个基类:QGLWidget 和 QOpenGLWidget。这是与 Widget 关联的代码:

  GLWidget::GLWidget(Helper *helper, QWidget *parent)
: QGLWidget(QGLFormat(QGL::SampleBuffers), parent), helper(helper)
{
elapsed = 0;
setFixedSize(200, 200);
setAutoFillBackground(false);
}

void GLWidget::animate()
{
elapsed = (elapsed + qobject_cast<QTimer*>(sender())->interval()) % 1000;
repaint();
}

void GLWidget::paintEvent(QPaintEvent *event)
{
QPainter painter;
painter.begin(this);
painter.setRenderHint(QPainter::Antialiasing);
helper->paint(&painter, event, elapsed);
painter.end();
}

我使用在我的机器上构建的 Qt 5.5.1 二进制文件。我默认使用构建配置,因此它基于 Qt ANGLE 而不是 Desktop OpenGL。这种行为有什么问题?

最佳答案

就我而言,我的笔记本电脑使用 NVIDIA 外置显卡。所以我去了 NVIDIA 控制面板 -> 管理 3D 设置 -> 程序设置,然后为 .EXE 文件选择“高性能”。这奏效了。

关于c++ - QOpenGLWidget显示黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34381314/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com