问题与QOpenGLWidget和QAXWidget

时间:2015-08-22 03:49:34

标签: qt qwidget

当我在qt中使用qopenglwidget和qaxwidget时,我遇到了qopenglwidget无法正确显示的奇怪问题。我不知道为什么。代码是这样的:

QTabWidget *tt=new QTabWidget;
MyOpenGLWidget *openGL = new MyOpenGLWidget ();
QAxWidget *native = new QAxWidget();
native->setControl(QStringLiteral("{f587310d-5306-494d-87e2-88334b46e781}"));
native->setAttribute(Qt::WA_NativeWindow);
native->setAttribute(Qt::WA_DontCreateNativeAncestors);
tt->addTab(native,"n");
tt->addTab(openGL,"o");

MyOpenGLWidget继承自QOpenGLWidget并具有覆盖方法paintEvent,如:

void MyOpenGLWidget ::paintEvent(QPaintEvent *event)
{
QPainter painter;
painter.begin(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.fillRect(event->rect(), QColor(255,255,0));
painter.end();
}

我还设置了app.setAttribute(Qt :: AA_DontCreateNativeWidgetSiblings);在主要功能。

问题是

1. MyOpenGLWidget的背景是黑色的,而不是我想要的黄色

2.当我改变时 TT-> addTab(天然的," N&#34); TT-> addTab(OpenGL中," O&#34); 至 TT-> addTab(OpenGL中," O&#34); TT-> addTab(天然的," N&#34); MyOpenGLWidget显示正确

我在https://github.com/hankern/Test-QOpenGLWidget

中创建了一个测试项目

0 个答案:

没有答案
相关问题