QOpenGLWidget与显示功能冲突,导致崩溃吗?

2026-04-30 20:235阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计248个文字,预计阅读时间需要1分钟。

QOpenGLWidget与显示功能冲突,导致崩溃吗?

由于显卡的差异性,有时在创建QOpenGLWidget时需要初始化显卡。第一次创建QOpenGLWidget可能会失败。


由于显卡的差异,有时候在创建QOpenGLWidget时需要初始化显卡

第一次创建QOpenGLWidget失败

#include "QtGuiApplication2.h"
#include <QtWidgets/QApplication>
#include <QOpenGLWidget>
int main(int argc, char *argv[])
{
// QSurfaceFormat format;
// format.setDepthBufferSize(24);
// format.setStencilBufferSize(8);
// format.setVersion(4, 3);
// format.setProfile(QSurfaceFormat::CoreProfile);
// QSurfaceFormat::setDefaultFormat(format);
QApplication a(argc, argv);
QOpenGLWidget w;
w.show();
return a.exec();
}

运行后崩溃:

QOpenGLWidget与显示功能冲突,导致崩溃吗?

如果出现上述问题,可以尝试把注释打开在运行

源码如下:

#include "QtGuiApplication2.h"
#include <QtWidgets/QApplication>
#include <QOpenGLWidget>
int main(int argc, char *argv[])
{
QSurfaceFormat format;
format.setDepthBufferSize(24);
format.setStencilBufferSize(8);
format.setVersion(4, 3);
format.setProfile(QSurfaceFormat::CoreProfile);
QSurfaceFormat::setDefaultFormat(format);
QApplication a(argc, argv);
QOpenGLWidget w;
w.show();
return a.exec();
}

如果还出现问题,可以改变版本号试试

标签:差异

本文共计248个文字,预计阅读时间需要1分钟。

QOpenGLWidget与显示功能冲突,导致崩溃吗?

由于显卡的差异性,有时在创建QOpenGLWidget时需要初始化显卡。第一次创建QOpenGLWidget可能会失败。


由于显卡的差异,有时候在创建QOpenGLWidget时需要初始化显卡

第一次创建QOpenGLWidget失败

#include "QtGuiApplication2.h"
#include <QtWidgets/QApplication>
#include <QOpenGLWidget>
int main(int argc, char *argv[])
{
// QSurfaceFormat format;
// format.setDepthBufferSize(24);
// format.setStencilBufferSize(8);
// format.setVersion(4, 3);
// format.setProfile(QSurfaceFormat::CoreProfile);
// QSurfaceFormat::setDefaultFormat(format);
QApplication a(argc, argv);
QOpenGLWidget w;
w.show();
return a.exec();
}

运行后崩溃:

QOpenGLWidget与显示功能冲突,导致崩溃吗?

如果出现上述问题,可以尝试把注释打开在运行

源码如下:

#include "QtGuiApplication2.h"
#include <QtWidgets/QApplication>
#include <QOpenGLWidget>
int main(int argc, char *argv[])
{
QSurfaceFormat format;
format.setDepthBufferSize(24);
format.setStencilBufferSize(8);
format.setVersion(4, 3);
format.setProfile(QSurfaceFormat::CoreProfile);
QSurfaceFormat::setDefaultFormat(format);
QApplication a(argc, argv);
QOpenGLWidget w;
w.show();
return a.exec();
}

如果还出现问题,可以改变版本号试试

标签:差异