qt - Putting QGLWidget inside QTabWidget causes warning "inconsistent hierarchy..." -


i have tab , put object inherited qglwidget. opengl works fine somehow displays warning:

inconsistent hierarchy, parent: qaccessibleinterface(0x28297c8 name="" role=user role obj=qstackedwidget(0x2826b80, name = "qt_tabwidget_stackedwidget") "invisib le" )  child: qaccessibleinterface(0x26f5d18 name="" role=client childc=1 obj=qw idget(0x26ec968, name = "tab") "invisible" ) 

if put gl object outside tab displays no warning. suspect there's wrong between qtabwidget , qglwidget. btw, use qt 5.0.2 , visual studio 2010

here's simple example of ui design , code reproduce issue

enter image description here

glimagedisplay.h

#ifndef _glimagedisplay_h_ #define _glimagedisplay_h_  #include "stdafx.h"  #include <qtopengl/qglwidget>  class glimagedisplay : public qglwidget {     q_object  public:     glimagedisplay(qwidget *parent = 0); protected:     void initializegl();     void resizegl(int w, int h);     void paintgl(); };  #endif 

glimagedisplay.cpp

#include "stdafx.h" #include "glimagedisplay.h"  #include <gl/glu.h> #include <gl/glut.h>  glimagedisplay::glimagedisplay(qwidget *parent) : qglwidget (parent)  {     setmousetracking(true); }  void glimagedisplay::initializegl()  {     gldisable(gl_texture_2d);     gldisable(gl_depth_test);     gldisable(gl_color_material);     glenable(gl_blend);     glenable(gl_polygon_smooth);     glblendfunc(gl_src_alpha, gl_one_minus_src_alpha);     glclearcolor(0, 0, 0, 0); }  void glimagedisplay::resizegl(int w, int h)  {     glviewport(0, 0, w, h);     glmatrixmode(gl_projection);     glloadidentity();     gluortho2d(0, w, 0, h);     glloadidentity(); }  void glimagedisplay::paintgl()  {     glclear(gl_color_buffer_bit);     glcolor3f(1,0,0);     glbegin(gl_polygon);     glvertex2f(100,100);     glvertex2f(100,300);     glvertex2f(300,100);     glend(); } 

in setupui function (generated code), warning appears after calling tabwidget->addtab(tab, qstring());

void setupui(qmainwindow *qtgltestclass) {     if (qtgltestclass->objectname().isempty())         qtgltestclass->setobjectname(qstringliteral("qtgltestclass"));     qtgltestclass->resize(600, 400);     centralwidget = new qwidget(qtgltestclass);     centralwidget->setobjectname(qstringliteral("centralwidget"));     gridlayout_2 = new qgridlayout(centralwidget);     gridlayout_2->setspacing(6);     gridlayout_2->setcontentsmargins(11, 11, 11, 11);     gridlayout_2->setobjectname(qstringliteral("gridlayout_2"));     tabwidget = new qtabwidget(centralwidget);     tabwidget->setobjectname(qstringliteral("tabwidget"));     tab = new qwidget();     tab->setobjectname(qstringliteral("tab"));     gridlayout = new qgridlayout(tab);     gridlayout->setspacing(6);     gridlayout->setcontentsmargins(11, 11, 11, 11);     gridlayout->setobjectname(qstringliteral("gridlayout"));     widget = new glimagedisplay(tab);     widget->setobjectname(qstringliteral("widget"));      gridlayout->addwidget(widget, 0, 0, 1, 1);      tabwidget->addtab(tab, qstring()); // warning appears /////      gridlayout_2->addwidget(tabwidget, 0, 0, 1, 1);      qtgltestclass->setcentralwidget(centralwidget);      retranslateui(qtgltestclass);      tabwidget->setcurrentindex(0);       qmetaobject::connectslotsbyname(qtgltestclass); } // setupui 

solved. use newer version qt 5.1.0 , warning message disappears


Comments

Popular posts from this blog

How to mention the localhost in android -

php - Calling a template part from a post -

c# - String.format() DateTime With Arabic culture -