QOpenGLWidget显示黑屏

2024-03-25

我尝试了此处描述的 QOpenGLWidget 示例:https://stackoverflow.com/a/31524956/4564882 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 https://doc.qt.io/archives/qt-5.3/qtopengl-2dpainting-example.html。它工作正常(尝试两个基类:QGLWidget 和 QOpenGLWidget。这是与小部件关联的代码:

  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,而不是桌面 OpenGL。 这种行为有什么问题呢?


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QOpenGLWidget显示黑屏 的相关文章

随机推荐

  • 在 Orchard CMS 中使用 ShapeHelper 生成形状 - 未找到类型

    我正在使用 Orchard CMS 构建一个网站并创建我自己的自定义模块 我一直在学习一些教程 到目前为止还不错 我不明白 ShapeHelper 方法是如何工作的 它给我带来了一些麻烦 以下代码来自我的驱动程序文件 工作得非常好 并在前端
  • C# - 无论我尝试什么,Base64 字节数组到图像都会失败

    我在 C 中从 Base64 编码的字节数组创建图像 位图对象时遇到问题 这是我正在处理的事情 我有一个用户可以裁剪图像的前端 当用户通过选择图像input type file 我的javascript代码使用HTML5的FileReade
  • Python单元测试,仅在测试失败时才执行某些操作

    当使用unittest来自 python 3 的库我只想在测试失败时执行一些操作 但这应该在类级别上 所以我不必为每个测试编写它 例如当使用behave有这样的事情 def after step context step if step s
  • 删除文本文件中的一行

    好的 我尝试从文件中删除包含 的行 该文件如下所示 Lorem ipsum Text 我的代码 f File open C websites ahr txt f each line do line if line include a lin
  • Scala import 语句位于 scala 类的顶部和内部

    在scala中这两种导入策略有什么区别 Option 1 import com somepackage class MyClass further code Option 2 class MyClass import com somepac
  • 我可以更改 apk 的版本代码吗?

    我为 Android 构建了一个应用程序 并且已经将其导出为 apk 如果已经导出 我可以更改其版本代码吗 我怎样才能做到这一点 我丢失了备份代码 我只有更新版本 需要返回第一个版本 我唯一能做的就是从 apk 备份中增加版本代码 然后我的
  • php中计算每个子数组中的元素

    一个例子来自php net http php net manual en function count php提供以下内容 如何独立于 food 数组 输出 3 获取水果和蔬菜的数量 你可以这样做 e
  • 当 Flexbox 项目以列模式换行时,容器不会增加其宽度

    我正在研究一个嵌套的弹性盒布局 它应该按如下方式工作 最外层 ul main 是一个水平列表 当向其中添加更多项目时 该列表必须向右扩展 如果它变得太大 应该有一个水平滚动条 main display flex flex direction
  • maven2:从 WAR 中排除目录

    I tried this http maven apache org plugins maven war plugin examples adding filtering webresources html从我的 WAR 文件中排除整个目录
  • 查找将一个 NumPy ndarray 的行映射到另一个 NumPy ndarray 的一组索引

    我有两个结构化的 2Dnumpy数组是equal原则上 意义 A numpy array a1 b1 c1 a2 b2 c2 a3 b3 c3 a4 b4 c4 B numpy array a2 b2 c2 a4 b4 c4 a3 b3 c
  • 在 React 中将类组件转换为函数式组件

    我正在学习 React hooks 因此为了做到这一点 我尝试将类组件转换为函数组件 但我仍然遇到一些错误 这是作为类编写的原始工作组件 import React Component from react import NavBar fro
  • Restkit:迁移到 0.20

    我正在尝试迁移到 RestKit 0 20 pre2 目前我设法迁移我的映射 至少编译器不再抱怨 但我在创建请求时遇到问题 之前我使用了不再存在的 RKObjectLoader 我之前的代码如下 RKObjectLoader objectL
  • 如何从 Cassandra 获取排序计数器

    我有一排计数器 我想让它的列按值排序 有什么策略或数据模型吗 恐怕没有办法让 Cassandra 为你做这件事 您需要从 Cassandra 获取整行 对大行进行分页 并在客户端中对其进行排序 如果您的解决方案可以处理非最新结果 您可以使用
  • R 中的 na.strings = c()

    我是 R 新手并开始探索na strings c 函数与read csv 我已经读到 使用此选项 所有缺失的值将被替换为 NA 但我在我的文件中没有看到这种情况发生 尽管使用了 但我没有看到输出有任何差异na strings c 如果我遗漏
  • 如何删除由 addEventListener 以事件对象作为参数绑定的匿名函数

    例如 document addEventListener keyup function ev if ev ctrlKey dosomething false 有什么办法可以去掉匿名函数吗 你可以自己写一个小接口addEventListene
  • tinymce 4 如何添加事件处理程序

    在tinymce 3中 我们似乎可以这样做 Adds a click handler to the current document tinymce dom Event add document click function e conso
  • Angular:延迟加载模块重新加载时重置服务状态

    我的申请中关于服务的结构如下 AppModule AppComponent and HomeComponent Lazy1 Lazy2 Lazy3 我的应用程序从 AppComponent 开始 它重定向到 HomeComponent 然后
  • 正则表达式不以数字开头

    如何创建一个匹配所有开头不带数字的字母数字的正则表达式 现在我有 0 9 a zA Z0 9 例如 1ab 不匹配 ab1 匹配 1 bc 不匹配 bc 1 匹配 你所写的内容存在三处错误 首先 要否定一个字符类 您可以将 inside括号
  • 雪花中有保存或加载工作表的选项吗?

    雪花中有保存或加载工作表的选项吗 或者将工作表下载到本地并从本地加载 我的意思不是通过剪贴板将其粘贴到某些文本编辑器并保存这样的选项 Snowflake 会自动保存您的工作表 您还可以将脚本从本地加载到工作表 但是无法下载工作表 Saved
  • QOpenGLWidget显示黑屏

    我尝试了此处描述的 QOpenGLWidget 示例 https stackoverflow com a 31524956 4564882 https stackoverflow com a 31524956 4564882 但我只得到一个