如何激活 QPainter::beginNativePainting ,Painter 不活动的 QGLWidget?
How to activate a QPainter::beginNativePainting , Painter inactive QGLWidget?
我得到一个带有以下 class 签名的 *.dll 文件
class Render_WidgetGL: public QGLWidget {
Q_OBJECT
}
我创建了这样一个 Render_WidgetGL 对象并将其设置为布局对象
Render_WidgetGL* renderWidget = new Render_WidgetGL(resources);
QGridLayout* gridLayout = new QGridLayout;
gridLayout->addWidget(renderWidget, 0, 1);
ui->horizontalLayout_5->addLayout(gridLayout);
当我启动并执行我的应用程序时,我收到以下消息:
RenderProject|nderBackendOpenGlES2|使用 GLEW 1.12.0
渲染项目|nderBackendOpenGlES2|OpenGL 2.0:1
QPainter beginNativePainting:画家未激活
QPainter setRenderHint:Painter 必须处于活动状态才能设置渲染提示
QPainter beginNativePainting:画家未激活
QPainter beginNativePainting:Painter 未激活
我的代码中没有这样的 Painter 对象,因此我假设它位于 *.dll 库中。那么如何激活 Painter 呢?
(顺便说一句:Qt docssay,那个 QGlWidget 已经过时了)
提前致谢!
QGLWidget 有一个 paintEvent(),它显然使用了那些 beginNativePainting 函数 - 在您的库 (*.dll) 中。
因此您可以在 *.dll 中替换 beginNativePainting 中的 paintEvent 方法:
void Render_Widget_GL::paintEvent(QPaintEvent* event){
//.. do stuff
painter.beginNativePainting();
// .. do stuff
painter.endNativePainting();
//.. do stuff
}
..与...:[=13=]
void Render_Widget_GL::paintEvent(QPaintEvent* event){
//.. do stuff
painter.begin(this);
// .. do stuff
painter.end();
//.. do stuff
}
我得到一个带有以下 class 签名的 *.dll 文件
class Render_WidgetGL: public QGLWidget {
Q_OBJECT
}
我创建了这样一个 Render_WidgetGL 对象并将其设置为布局对象
Render_WidgetGL* renderWidget = new Render_WidgetGL(resources);
QGridLayout* gridLayout = new QGridLayout;
gridLayout->addWidget(renderWidget, 0, 1);
ui->horizontalLayout_5->addLayout(gridLayout);
当我启动并执行我的应用程序时,我收到以下消息:
RenderProject|nderBackendOpenGlES2|使用 GLEW 1.12.0 渲染项目|nderBackendOpenGlES2|OpenGL 2.0:1 QPainter beginNativePainting:画家未激活 QPainter setRenderHint:Painter 必须处于活动状态才能设置渲染提示 QPainter beginNativePainting:画家未激活 QPainter beginNativePainting:Painter 未激活
我的代码中没有这样的 Painter 对象,因此我假设它位于 *.dll 库中。那么如何激活 Painter 呢? (顺便说一句:Qt docssay,那个 QGlWidget 已经过时了)
提前致谢!
QGLWidget 有一个 paintEvent(),它显然使用了那些 beginNativePainting 函数 - 在您的库 (*.dll) 中。
因此您可以在 *.dll 中替换 beginNativePainting 中的 paintEvent 方法:
void Render_Widget_GL::paintEvent(QPaintEvent* event){
//.. do stuff
painter.beginNativePainting();
// .. do stuff
painter.endNativePainting();
//.. do stuff
}
..与...:[=13=]
void Render_Widget_GL::paintEvent(QPaintEvent* event){
//.. do stuff
painter.begin(this);
// .. do stuff
painter.end();
//.. do stuff
}