Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QGLWidget

La classe QGLWidget est un widget pour afficher des graphismes avec OpenGL. Plus d'informations...

#include <QGLWidget>

Voir la position dans l'arbre des classes.

H�ritage

H�rite de QWidget.

Description d�taill�e

La classe QGLWidget est un widget pour afficher des graphismes avec OpenGL.

QGLWidget fournit des fonctionnalit�s pour afficher des graphismes OpenGL dans une application Qt. La classe est tr�s simple � utiliser. On h�rite � partir de QGLWidget et on utilise la sous-classe comme n'importe quelle QWidget, sauf que l'on a maintenant le choix entre utiliser QPainter ou les commandes de rendu OpenGL.

QGLWidget fournit trois fonctions virtuelles de commodit� que l'on peut r�impl�menter dans la sous-classe pour effectuer les t�ches basiques d'OpenGL :

  • paintGL() - Affiche la sc�ne OpenGL. Est appel� � chaque fois que le widget a besoin d'�tre mis � jour.
  • resizeGL() - D�finit la vue OpenGL, la matrice de projection, etc. Est appel� � chaque fois que le widget est redimensionn� (et aussi lorsque le widget est affich� pour la premi�re fois comme tout nouveau widget qui re�oit automatiquement un �v�nement de redimensionnement).
  • initializeGL() - D�finit le contexte de rendu OpenGL, cr�e les listes d'affichage, etc. Est appel� une seule fois avant que resizeGL() ou paintGL() ne soit appel�.

Une sous-classe de QGLWidget pourrait ressembler � l'�bauche suivante :

 class MyGLDrawer : public QGLWidget
 {
     Q_OBJECT        // On doit inclure ceci si on utilise les signaux/slots de Qt
 
 public:
     MyGLDrawer(QWidget *parent)
         : QGLWidget(parent) {}
 
 protected:
 
     void initializeGL()
     {
         // D�finit le contexte de rendu, les listes d'affichages, etc. :
         ...
         glClearColor(0.0, 0.0, 0.0, 0.0);
         glEnable(GL_DEPTH_TEST);
         ...
     }
 
     void resizeGL(int w, int h)
     {
         // Met en place la vue, la projection, etc. :
         glViewport(0, 0, (GLint)w, (GLint)h);
         ...
         glFrustum(...);
         ...
     }
 
     void paintGL()
     {
         // Dessine la sc�ne :
         ...
         glRotatef(...);
         glMaterialfv(...);
         glBegin(GL_QUADS);
         glVertex3f(...);
         glVertex3f(...);
         ...
         glEnd();
         ...
     }
 
 };

Si on veut forcer le r�affichage � partir d'autres endroits que paintGL() (un exemple ordinaire est d'utiliser les timers pour les sc�nes anim�es), on doit appeler la fonction updateGL() du widget.

Le contexte de rendu OpenGL du widget est le contexte courant lorsque paintGL(), resizeGL() ou initializeGL() sont appel�s. Si on doit appeler les fonctions standards de la biblioth�que OpenGL depuis d'autres endroits (par exemple, depuis le constructeur de votre widget ou depuis vos propres fonctions de dessin), on doit appeler d'abord makeCurrent().

QGLWidget fournit des fonctions pour demander un nouveau format d'affichage et il est m�me possible de cr�er des widgets avec des contextes d'affichage personnalis�s.

On peut aussi partager les listes d'affichage OpenGL entre les objets QGLWidget (voir la documentation des constructeurs de QGLWidget pour les d�tails).

On note que sous Windows, le QGLContext appartenant � un QGLWidget doit �tre recr�� lorsque le QGLWidget obtient un nouveau parent. Cela est n�cessaire � cause des limitations des plateformes Windows. Cela peut poser des probl�mes aux utilisateurs qui ont h�rit� et install� leur propre QGLContext sur un QGLWidget. Il est possible de contourner ce probl�me en ins�rant le QGLWidget dans un widget fictif, et de donner � ce widget fictif un nouveau parent, au lieu de le faire sur le QGLWidget. Cela va contourner compl�tement le probl�me et c'est ce qui est recommand� aux utilisateurs n�cessitant ce genre de fonctionnalit�s.

Sur Mac OS X, lorsque Qt est construit avec le support Cocoa, un QGLWidget ne peut pas avoir de widget fr�re plac� au-dessus de lui. Ceci est d� � une limitation de la biblioth�que Cocoa et n'est pas pris en charge par Apple.

Calques

Le QGLWidget cr�e un calque OpenGL en plus du contexte normal si les calques sont support�s par le syst�me h�te.

Si vous souhaitez utiliser les calques, vous devez le sp�cifier dans le format (� noter : l'utilisation des calques doit �tre demand�e dans le format pass� au constructeur de QGLWidget). Le widget OpenGL doit aussi impl�menter une ou plusieurs de ces m�thodes virtuelles :

Ces m�thodes fonctionnent de la m�me mani�re que les fonctions �quivalentes paintGL() etc., sauf qu'elles seront appel�es lorsque le contexte du calque est rendu courant. On peut explicitement rendre le contexte du calque courant en utilisant makeOverlayCurrent() et on peut acc�der au contexte du calque directement (par exemple, pour conna�tre sa couleur de transparence) en appelant overlayContext().

Sur les serveurs X sur lesquels la vue par d�faut est un calque, les fen�tres Qt non-OpenGL peuvent aussi �tre utilis�es comme calques.

Techniques de dessin

Comme d�crit pr�c�demment, on h�rite de QGLWidget pour dessiner du contenu 3D de la fa�on suivante :

Il est aussi possible de dessiner des graphismes 2D au-dessus d'une sous-classe de QGLWidget. Pour cela il est n�cessaire de r�impl�menter la fonction QGLWidget::paintEvent() et de :

Dessiner du contenu 2D au-dessus de contenu 3D demande un petit effort suppl�mentaire. Une des approches pour le faire est pr�sent�e dans l'exemple overpainting.

Parall�lisation

Il est possible de dessiner dans un QGLWidget � partir d'un autre thread, mais cela demande que tous les acc�s au contexte OpenGL soient s�curis�s. Le thread de l'IHM Qt va essayer d'utiliser le contexte dans resizeEvent et dans paintEvent, donc afin de parall�liser le dessin en utilisant un widget OpenGL, ces fonctions doivent �tre intercept�es dans le thread de l'IHM et prises en charge dans l'application.

OpenGL est une marque d�pos�e de Silicon Graphics, Inc. aux �tats-Unis et dans les autres pays.

Voir aussi QGLPixelBuffer, l'exemple Hello GL, l'exemple 2D Painting, l'exemple Overpainting et l'exemple Grabber.

Fonctions membres

QGLWidget::QGLWidget ( QWidget * parent = 0, const QGLWidget * shareWidget = 0, Qt::WindowFlags f = 0 )

Construit un widget OpenGL avec le widget parent.

Le format par d�faut est utilis�. Le widget va �tre invalide si le syst�me ne prend pas en charge OpenGL.

Les param�tres parent et les drapeaux du widget f sont pass�s au constructeur du QWidget.

Si shareWidget est un QGLWidget valide, ce widget va partager les listes d'affichage et les objets textures d'OpenGL avec le widget shareWidget. Mais si shareWidget et ce widget ont un format diff�rent, le partage peut ne pas �tre possible. On peut v�rifier si le partage est activ� avec isSharing().

L'initialisation de l'�tat de rendu d'OpenGL, etc. devrait �tre faite en surchargeant la fonction initializeGL(), plut�t que dans le constructeur de la sous-classe de QGLWidget.

Voir aussi QGLFormat::defaultFormat() et l'exemple Textures.

QGLWidget::QGLWidget ( QGLContext * context, QWidget * parent = 0, const QGLWidget * shareWidget = 0, Qt::WindowFlags f = 0 )

Construit un widget OpenGL avec le widget parent.

Le contexte context est un pointeur sur un QGLContext que l'on souhaite attacher � ce widget. Cela permet de passer sa propre sous-classe QGLContext.

Le widget va �tre invalide si le syst�me ne prend pas en charge OpenGL.

Les param�tres parent et les drapeaux du widget f sont pass�s au constructeur du QWidget.

Si shareWidget est un QGLWidget valide, ce widget va partager les listes d'affichage et les objets textures d'OpenGL avec le widget shareWidget. Mais si shareWidget et ce widget ont un format diff�rent, le partage peut ne pas �tre possible. On peut v�rifier si le partage est activ� avec isSharing().

L'initialisation de l'�tat de rendu d'OpenGL, etc. devrait �tre faite en surchargeant la fonction initializeGL(), plut�t que dans le constructeur de la sous-classe de QGLWidget.

Voir aussi QGLFormat::defaultFormat() et isValid().

QGLWidget::QGLWidget ( const QGLFormat & format, QWidget * parent = 0, const QGLWidget * shareWidget = 0, Qt::WindowFlags f = 0 )

Construit un widget OpenGL avec le widget parent.

Le param�tre format indique les options de rendu d�sir�es. Si le syst�me OpenGL/de fen�trage h�te ne peut pas satisfaire toutes les caract�ristiques demand�es du format, la plus proche configuration va �tre utilis�e. Apr�s la cr�ation, la m�thode format() va retourner le format actuel obtenu.

Le widget va �tre invalide si le syst�me ne prend pas en charge OpenGL.

Les param�tres parent et les drapeaux de widget f sont pass�s au constructeur du QWidget.

Si shareWidget est un QGLWidget valide, ce widget va partager les listes d'affichage et les objets textures d'OpenGL avec le widget shareWidget. Mais si shareWidget et ce widget ont un format diff�rent, le partage peut ne pas �tre possible. On peut v�rifier si le partage est activ� avec isSharing().

L'initialisation de l'�tat de rendu d'OpenGL, etc. devrait �tre faite en surchargeant la fonction initializeGL(), plut�t que dans le constructeur de la sous-classe de QGLWidget.

Voir aussi QGLFormat::defaultFormat() et isValid().

QGLWidget::~QGLWidget ()

D�truit le widget.

bool QGLWidget::autoBufferSwap () const [protected]

Retourne true si le widget effectue automatiquement l'�change de buffers OpenGL ; sinon retourne false.

Voir aussi setAutoBufferSwap().

GLuint QGLWidget::bindTexture ( const QImage & image, GLenum target = GL_TEXTURE_2D, GLint format = GL_RGBA )

Appelle QGLContext::bindTexture(image, target, format) avec le contexte courant.

Voir aussi deleteTexture().

GLuint QGLWidget::bindTexture ( const QPixmap & pixmap, GLenum target = GL_TEXTURE_2D, GLint format = GL_RGBA )

Appelle QGLContext::bindTexture(pixmap, target, format) avec le contexte courant.

Voir aussi deleteTexture().

GLuint QGLWidget::bindTexture ( const QImage & image, GLenum target, GLint format, QGLContext::BindOptions options )

Il s'agit d'une fonction surcharg�e.

Les options de liaisons sont un ensemble d'options permettant de d�cider comment attacher la texture au contexte.

Cette fonction a �t� introduite dans Qt 4.6.

GLuint QGLWidget::bindTexture ( const QPixmap & pixmap, GLenum target, GLint format, QGLContext::BindOptions options )

Il s'agit d'une fonction surcharg�e.

G�n�re et attache, � partir de pixmap, une texture OpenGL 2D au contexte courant. L'identifiant de la texture g�n�r�e est retourn� et peut �tre utilis�.

Les options de liaisons sont un ensemble d'options permettant de d�cider comment attacher la texture au contexte.

Cette fonction a �t� introduite dans Qt 4.6.

GLuint QGLWidget::bindTexture ( const QString & fileName )

Il s'agit d'une fonction surcharg�e.

Appelle QGLContext::bindTexture(fileName) avec le contexte courant.

Voir aussi deleteTexture().

const QGLColormap & QGLWidget::colormap () const

Retourne la palette de couleurs pour ce widget.

Habituellement, seulement les widgets sup�rieurs peuvent avoir diff�rentes palettes de couleurs install�es. La demande de la palette d'un widget enfant va renvoyer la palette du widget au-dessus de celui-ci.

Si aucune palette n'a �t� d�finie pour ce widget, le QGLColormap retourn� va �tre vide.

Voir aussi setColormap() et QGLColormap::isEmpty().

const QGLContext * QGLWidget::context () const

Retourne le contexte de ce widget.

Il est possible que le contexte ne soit pas valide (voir isValid()), par exemple, si le mat�riel h�te ne supporte pas les attributs de format qui ont �t� d�mand�s.

QImage QGLWidget::convertToGLFormat ( const QImage & img ) [static]

Convertit l'image img dans le format anonyme attendu par les fonctions OpenGL tel que glTexImage2D(). L'image retourn�e n'est pas utilisable comme une QImage mais QImage::width(), QImage::height() et QImage::bits() peuvent �tre utilis�s avec OpenGL. Le format OpenGL utilis� est GL_RGBA.

void QGLWidget::deleteTexture ( GLuint id )

Appelle QGLContext::deleteTexture(id) avec le contexte courant.

Voir aussi bindTexture().

void QGLWidget::doneCurrent ()

D�clare un non-contexte OpenGL comme contexte courant. Normalement, on n'a pas besoin d'appeler cette fonction ; QGLContext l'appelle si n�cessaire. Toutefois, la fonction peut �tre utile dans les environnements multithreads.

bool QGLWidget::doubleBuffer () const

Retourne true si le contexte de rendu OpenGL poss�de le double buffering ; sinon retourne false.

Voir aussi QGLFormat::doubleBuffer().

void QGLWidget::drawTexture ( const QRectF & target, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D )

Appelle la fonction correspondante QGLContext::drawTexture() avec les param�tres target, textureId et textureTarget pour le contexte courant du widget.

Cette fonction a �t� introduite dans Qt 4.4.

void QGLWidget::drawTexture ( const QPointF & point, GLuint textureId, GLenum textureTarget = GL_TEXTURE_2D )

Appelle la fonction correspondante QGLContext::drawTexture() avec les param�tres point, textureId et textureTarget pour le contexte courant du widget.

Cette fonction a �t� introduite dans Qt 4.4.

bool QGLWidget::event ( QEvent * e ) [virtual protected]

R�impl�mentation de QObject::event().

QGLFormat QGLWidget::format () const

Retourne le format du contexte de rendu OpenGL contenu.

Voir aussi setFormat().

void QGLWidget::glDraw () [virtual protected]

Ex�cute la fonction virtuelle paintGL().

Le contexte de rendu du widget va devenir le contexte courant et initializeGL() va �tre appel� si cela n'a pas d�j� �t� fait.

void QGLWidget::glInit () [virtual protected]

Initialise OpenGL pour le contexte du widget. Appelle la fonction virtuelle initializeGL().

QImage QGLWidget::grabFrameBuffer ( bool withAlpha = false )

Retourne une image du frame buffer. Si le param�tre withAlpha est d�fini � true, le canal alpha est inclus.

Selon le mat�riel, on peut s�lectionner explicitement le buffer de couleur � capturer avec un appel � glReadBuffer() avant cette fonction.

void QGLWidget::initializeGL () [virtual protected]

Cette fonction virtuelle est appel�e une seule fois avant le premier appel � paintGL() ou � resizeGL() et chaque fois qu'un nouveau QGLContext est assign� au widget. � r�implementer dans une sous-classe.

Cette fonction devrait mettre en place tous les drapeaux de rendu de contexte OpenGL, d�finir les listes d'affichage, etc.

Il n'y a pas besoin d'appeler makeCurrent() car cela est d�j� fait lorsque cette fonction est appel�e.

void QGLWidget::initializeOverlayGL () [virtual protected]

Cette fonction virtuelle s'utilise de la m�me mani�re que initializeGL() mais agit sur le calque du widget � place du contexte principal. Cela signifie que ce initializeOverlayGL() est appel� une seule fois avant le premier appel � paintOverlayGL() ou resizeOverlayGL(). � r�implementer dans une sous-classe.

Cette fonction devrait mettre en place tous les drapeaux de rendu de contexte OpenGL, d�finir les listes d'affichage, etc.

Il n'y a pas besoin d'appeler makeOverlayCurrent() car cela est d�j� fait lorsque cette fonction est appel�e.

bool QGLWidget::isSharing () const

Retourne true si le contexte OpenGL de ce widget est partag� avec un autre contexte OpenGL, sinon retourne false. Le partage des contextes peut ne pas �tre possible si les widgets utilisent diff�rents formats.

Voir aussi format().

bool QGLWidget::isValid () const

Retourne true si le widget a un contexte de rendu OpenGL valide ; sinon retourne false. Un widget devient invalide si le syst�me ne prend pas en charge OpenGL.

void QGLWidget::makeCurrent ()

D�finit ce widget comme le widget courant pour les op�rations OpenGL, c'est-�-dire que le contexte de rendu OpenGL de ce widget est le contexte de rendu courant.

void QGLWidget::makeOverlayCurrent ()

D�finit le contexte du calque de ce widget courant. On utilise cette fonction si on a besoin d'ex�cuter des commandes OpenGL sur le calque en dehors des fonctions initializeOverlayGL(), resizeOverlayGL() et paintOverlayGL().

N'a aucun effet si le widget n'a pas de calque.

Voir aussi makeCurrent().

const QGLContext * QGLWidget::overlayContext () const

Retourne le contexte du calque de ce widget, ou 0 si le widget n'a pas de calque.

Voir aussi context().

void QGLWidget::paintEvent ( QPaintEvent * event ) [virtual protected]

R�implementation de QWidget::paintEvent().

Manipule les �v�nements de dessin pass�s dans le param�tre event. Appelle la fonction virtuelle paintGL().

Le contexte de rendu du widget va devenir le contexte courant et initializeGL() va �tre appel� si cela n'a jamais �t� fait.

void QGLWidget::paintGL () [virtual protected]

Cette fonction virtuelle est appel�e � chaque fois que le widget doit �tre redessin�. � r�implementer dans une sous-classe.

Il n'y a pas besoin d'appeler makeCurrent() car cela est fait lorsque cette fonction est appel�e.

void QGLWidget::paintOverlayGL () [virtual protected]

Cette fonction virtuelle s'utilise de la m�me mani�re que paintGL() mais agit sur le contexte du calque du widget � la place du contexte principal du widget. Cela signifie que paintOverlayGL() est appel� � chaque fois que le calque du widget doit �tre redessiner. � r�implementer dans une sous-classe.

Il n'y a pas besoin d'appeler makeOverlayCurrent() car cela est fait lorsque cette fonction est appel�e.

void QGLWidget::qglClearColor ( const QColor & c ) const

Fonction de commodit� pour sp�cifier une couleur d'effacement � OpenGL. Appelle glClearColor (dans le mode RGBA) ou glClearIndex (dans le mode index�) avec la couleur cc. La fonction s'applique au contexte OpenGL de ce widget.

Voir aussi qglColor(), QGLContext::currentContext() et QColor.

void QGLWidget::qglColor ( const QColor & c ) const

Fonction de commodit� pour sp�cifier une couleur pour le dessin � OpenGL. Appelle glColor4 (dans le mode RGBA) ou glIndex (dans le mode index�) avec la couleur c. La fonction interagit avec le contexte OpenGL de ce widget.

Note : cette fonction n'est pas prise en charge sur les syst�mes OpenGL/ES 2.0.

Voir aussi qglClearColor(), QGLContext::currentContext() et QColor.

QPixmap QGLWidget::renderPixmap ( int w = 0, int h = 0, bool useContext = false )

Dessine la sc�ne courante dans un pixmap et renvoie le pixmap.

On peut utiliser cette m�thode sur les objets QGLWidget visibles et invisibles.

Cette m�thode va cr�er un pixmap et un QGLContext temporaire pour dessiner sur le pixmap. Elle va alors appeler initializeGL(), resizeGL() et paintGL() sur ce contexte. Finalement, le contexte original du widget est restaur�.

La taille du pixmap va �tre w pixels de large et h pixels de haut � moins que l'un de ces param�tres ne soit 0 (la valeur par d�faut), dans ce cas le pixmap aura la m�me taille que le widget.

Si useContext est true, la m�thode va essayer d'�tre plus efficace en utilisant le contexte OpenGL existant pour dessiner le pixmap. La valeur par d�faut est false. On utilise true seulement si on comprend le risque. � noter que sous Windows un contexte temporaire doit �tre cr�� et que l'utilisation du param�tre useContext n'est pas prise en charge.

Les calques ne sont pas rendus sur le pixmap.

Si le contexte de rendu OpenGL et le bureau ont des profondeurs de bits diff�rentes, le r�sultat va surement �tre surprenant.

� noter que la cr�ation de listes d'affichage, les modifications de la matrice de vue, etc. devraient �tre effectu�es dans initializeGL(). Si cela n'est pas fait, le QGLContext temporaire ne va pas �tre initialis� correctement et le rendu du pixmap peut �tre incomplet ou corrompu.

void QGLWidget::renderText ( int x, int y, const QString & str, const QFont & font = QFont(), int listBase = 2000 )

Dessine la cha�ne de caract�res str dans le contexte OpenGL de ce widget.

x et y sont dans l'espace de coordonn�es de la fen�tre, avec pour origine le coin sup�rieur gauche de la fen�tre. Si le param�tre font n'est pas indiqu�, la police actuellement d�finie va �tre utilis�e pour dessiner la cha�ne de caract�res. Pour changer la couleur de rendu du texte, on peut utiliser la fonction glColor() (ou la fonction de commodit� qglColor()), avant l'appel � renderText().

Le param�tre listBase est obsol�te et va �tre retir� dans une prochaine version de Qt.

Note : cette fonction efface le stencil buffer.

Note : cette fonction n'est pas prise en charge sur les syst�mes OpenGL/ES.

Note : cette fonction d�sactive temporairement le test de profondeur lors du dessin du texte.

Note : cette fonction peut seulement �tre utilis�e dans un bloc QPainter::beginNativePainting()/QPainter::endNativePainting() si le moteur de rendu par d�faut est QPaintEngine::OpenGL. Pour d�finir QPaintEngine::OpenGL comme moteur de rendu par d�faut, on appelle QGL::setPreferredPaintEngine(QPaintEngine::OpenGL) avant le constructeur de la QApplication.

On dessine au-dessus avec la fonction QPainter::drawText() � la place.

void QGLWidget::renderText ( double x, double y, double z, const QString & str, const QFont & font = QFont(), int listBase = 2000 )

Il s'agit d'une fonction surcharg�e.

x, y et z sont dans l'espace de coordonn�es de la sc�ne ou des objets selon les matrices de projection et de mod�le actuellement en place. Cela peut �tre utile si on souhaite annoter des mod�les avec du texte et avoir le texte qui se d�place avec le mod�le comme s'ils �taient tourn�s, etc.

Note : cette fonction n'est pas prise en charge sur les syst�mes OpenGL/ES.

Note : si le test de profondeur est activ� avant l'appel de la fonction, alors le texte dessin� va passer le test de profondeur contre les mod�les d�j� dessin�s dans la sc�ne. On utilise glDisable(GL_DEPTH_TEST) avant l'appel de la fonction pour annoter les mod�les sans le test de profondeur pour le texte.

On dessine au-dessus avec la fonction QPainter::drawText() � la place.

void QGLWidget::resizeEvent ( QResizeEvent * event ) [virtual protected]

R�impl�mentation de QWidget::resizeEvent().

G�re les �v�nements de redimensionnement qui sont pass�s dans le param�tre event. Appelle la fonction virtuelle resizeGL().

void QGLWidget::resizeGL ( int width, int height ) [virtual protected]

Cette fonction virtuelle est appel�e � chaque fois que le widget est redimensionn�. La nouvelle taille est pass�e dans les param�tres width et height pour la largeur et la hauteur respectivement. � r�implementer dans une sous-classe.

Il n'y a pas besoin d'appeler makeCurrent() car cela a d�j� �t� effectu� avant l'appel de cette fonction.

void QGLWidget::resizeOverlayGL ( int width, int height ) [virtual protected]

Cette fonction virtuelle s'utilise de la m�me fa�on que paintGL() sauf qu'elle agit sur le contexte du calque du widget � la place du contexte principal du widget. Cela signifie que resizeOverlayGL() est appel� � chaque fois que le widget est redimensionn�. La nouvelle taille est pass�e dans les param�tres width et height pour la largeur et la hauteur respectivement. � r�implementer dans une sous-classe.

Il n'y a pas besoin d'appeler makeOverlayCurrent() car cela a d�j� �t� effectu� avant l'appel de cette fonction.

void QGLWidget::setAutoBufferSwap ( bool on ) [protected]

Si on est d�fini � true, l'�change automatique de buffers OpenGL est activ� ; sinon il est d�sactiv�.

Si on est d�fini � true et que le widget utilise un format � double buffers, le buffer de fond et le buffer de premier plan vont automatiquement �tre �chang�s apr�s chaque appel de paintGL().

L'�change automatique de buffers est activ� par d�faut.

Voir aussi autoBufferSwap(), doubleBuffer() et swapBuffers().

void QGLWidget::setColormap ( const QGLColormap & cmap )

D�finir la palette de couleurs pour ce widget � cmap. Normalement, seuls les widgets sup�rieurs peuvent avoir une palette de couleurs install�e.

Voir aussi colormap().

void QGLWidget::setMouseTracking ( bool enable )

Si enable est d�fini � true alors le suivi de la souris est activ� ; sinon il est d�sactiv�.

void QGLWidget::swapBuffers ()

�change le contenu de l'�cran avec le buffer hors �cran. Cela fonctionne seulement si le format du widget accepte le mode de double buffers.

Normalement, il n'y a pas besoin d'appeler cette fonction explicitement car cela est fait � chaque r�affichage du widget, c'est-�-dire apr�s chaque appel de paintGL().

Voir aussi doubleBuffer(), setAutoBufferSwap() et QGLFormat::setDoubleBuffer().

void QGLWidget::updateGL () [virtual slot]

Met � jour le widget en appelant glDraw().

void QGLWidget::updateOverlayGL () [virtual slot]

Met � jour le calque du widget (si pr�sent). Appelle la fonction virtuelle paintOverlayGL().

Le contexte de rendu du widget va devenir le contexte courant et la fonction initializeGL() va �tre appel�e si elle n'a jamais �t� appel�e.

Remerciements

Merci � Alexandre Laurent pour la traduction ainsi qu'� Lo?c Leguay, Jonathan Courtois et Claude Leloup pour leur relecture !

Publicit�

Best Of

Actualit�s les plus lues

Semaine
Mois
Ann�e
  1. � Quelque chose ne va vraiment pas avec les d�veloppeurs "modernes" �, un d�veloppeur � "l'ancienne" critique la multiplication des biblioth�ques 64
  2. Apercevoir la troisi�me dimension ou l'utilisation multithread�e d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  3. Les d�veloppeurs ignorent-ils trop les failles d�couvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  4. BlackBerry 10 : premi�res images du prochain OS de RIM qui devrait int�grer des widgets et des tuiles inspir�es de Windows Phone 0
  5. Quelles nouveaut�s de C++11 Visual C++ doit-il rapidement int�grer ? Donnez-nous votre avis 10
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil d�claratif et extensible pour la compilation de projets Qt 17
  7. La rubrique Qt a besoin de vous ! 1
Page suivante

Le Qt Quarterly au hasard

Logo

Abusons de QMap

Qt Quarterly est la revue trimestrielle propos�e par Nokia et � destination des d�veloppeurs Qt. Ces articles d'une grande qualit� technique sont r�dig�s par des experts Qt. Lire l'article.

Communaut�

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la r�daction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, �crite par Nokia Corporation and/or its subsidiary(-ies). Les �ventuels probl�mes r�sultant d'une mauvaise traduction ne sont pas imputables � Nokia. Qt 4.7
Copyright © 2012 Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'� 3 ans de prison et jusqu'� 300 000 E de dommages et int�r�ts. Cette page est d�pos�e � la SACD.
Vous avez d�nich� une erreur ? Un bug ? Une redirection cass�e ? Ou tout autre probl�me, quel qu'il soit ? Ou bien vous d�sirez participer � ce projet de traduction ? N'h�sitez pas � nous contacter ou par MP !
 
 
 
 
Partenaires

H�bergement Web