2011-08-23 5 views
0

J'ai un problème avec QGLWidget. En fait, avec les actions de la souris, le QGLWidget sera mis à jour. J'ai besoin d'ouvrir une autre fenêtre à partir de ce widget, par exemple avec un double clic. Je crée un nouveau widget QWidget avec QGLWidget comme parent et définissant les indicateurs suivants dans la nouvelle fenêtre.Problème avec QGLWidget

QWidget :: setWindowFlags (Qt :: Fenêtre | Qt :: WindowTitleHint | Qt :: CustomizeWindowHint | Qt :: WindowMinimizeButtonHint | Qt :: WindowCloseButtonHint);

Cette nouvelle fenêtre s'ouvre très bien, fonctionnant comme prévu. Mais quand je ferme cette fenêtre et essaye de mettre à jour le QGLWidget, il agit bizarrement. La petite partie du total QGLWidget (la zone où la nouvelle fenêtre a été ouverte) est mise à jour mais pas la totalité de QGLWidget.

Aussi, manqué de mettre à jour un autre point ici. Ce problème ne se produit pas à chaque fois. L'application qt est ouverte avec une autre application, redistribuée avec les DLLs requises. Lorsqu'il est ouvert en tant qu'application indépendante, il n'a aucun problème. Mais lorsqu'il est ouvert avec une autre application, le problème refait surface.

Des idées pourquoi?

Merci!

+0

L'appel de la fonction 'resizeGL' avec les dimensions appropriées aide-t-il? – ssell

Répondre

0

J'ai lancé une application Qt rapide en faisant ce que vous dites et je n'ai pas vu ce problème. Le widget enfant s'affiche comme d'habitude. Si je le déplace ou le ferme, je vois la scène GL en dessous. Peut-être pourriez-vous fournir un extrait de code ou une capture d'écran du problème.

Cependant, il semble que votre fenêtre GL soit mise à jour avec son peintre restreint à une zone spécifique comme described here.

+0

Merci pour la réponse. Beaucoup d'appels de repaint sont utilisés dans mon code. Mais je ne suis pas sûr si la région demandée est modifiée avec l'ouverture d'un nouveau widget. – krishna

Questions connexes