Logo Search packages:      
Sourcecode: qt4-x11 version File versions

QGLWidget Class Reference

Inheritance diagram for QGLWidget:

QWidget QObject QPaintDevice

List of all members.


Detailed Description

The QGLWidget class is a widget for rendering OpenGL graphics.

QGLWidget provides functionality for displaying OpenGL graphics integrated into a Qt application. It is very simple to use. You inherit from it and use the subclass like any other QWidget, except that you have the choice between using QPainter and standard OpenGL rendering commands.

QGLWidget provides three convenient virtual functions that you can reimplement in your subclass to perform the typical OpenGL tasks:

paintGL() - Renders the OpenGL scene. Gets called whenever the widget needs to be updated. resizeGL() - Sets up the OpenGL viewport, projection, etc. Gets called whenever the the widget has been resized (and also when it is shown for the first time because all newly created widgets get a resize event automatically). initializeGL() - Sets up the OpenGL rendering context, defines display lists, etc. Gets called once before the first time resizeGL() or paintGL() is called.

Here is a rough outline of how a QGLWidget subclass might look:

    class MyGLDrawer : public QGLWidget
    {
        Q_OBJECT        // must include this if you use Qt signals/slots

    public:
        MyGLDrawer(QWidget *parent)
            : QGLWidget(parent) {}

    protected:

        void initializeGL()
        {
            // Set up the rendering context, define display lists etc.:
            ...
            glClearColor(0.0, 0.0, 0.0, 0.0);
            glEnable(GL_DEPTH_TEST);
            ...
        }

        void resizeGL(int w, int h)
        {
            // setup viewport, projection etc.:
            glViewport(0, 0, (GLint)w, (GLint)h);
            ...
            glFrustum(...);
            ...
        }

        void paintGL()
        {
            // draw the scene:
            ...
            glRotatef(...);
            glMaterialfv(...);
            glBegin(GL_QUADS);
            glVertex3f(...);
            glVertex3f(...);
            ...
            glEnd();
            ...
        }

    };

If you need to trigger a repaint from places other than paintGL() (a typical example is when using timers to animate scenes), you should call the widget's updateGL() function.

Your widget's OpenGL rendering context is made current when paintGL(), resizeGL(), or initializeGL() is called. If you need to call the standard OpenGL API functions from other places (e.g. in your widget's constructor or in your own paint functions), you must call makeCurrent() first.

QGLWidget provides functions for requesting a new display format and you can also create widgets with customized rendering contexts.

You can also share OpenGL display lists between QGLWidgets (see the documentation of the QGLWidget constructors for details).

Definition at line 307 of file qgl.h.


Public Types

enum  PaintDeviceMetric {
  PdmWidth = 1, PdmHeight, PdmWidthMM, PdmHeightMM,
  PdmNumColors, PdmDepth, PdmDpiX, PdmDpiY,
  PdmPhysicalDpiX, PdmPhysicalDpiY
}

Public Slots

bool close ()
void deleteLater ()
void hide ()
void lower ()
void raise ()
void repaint ()
void setDisabled (bool)
void setEnabled (bool)
void setFocus ()
void setHidden (bool hidden)
QT_MOC_COMPAT void setShown (bool shown)
void setStyleSheet (const QString &styleSheet)
virtual void setVisible (bool visible)
void setWindowModified (bool)
void setWindowTitle (const QString &)
void show ()
void showFullScreen ()
void showMaximized ()
void showMinimized ()
void showNormal ()
void update ()
virtual void updateGL ()
virtual void updateOverlayGL ()

Signals

void customContextMenuRequested (const QPoint &pos)
void destroyed (QObject *=0)

Public Member Functions

bool acceptDrops () const
QString accessibleDescription () const
QString accessibleName () const
QList< QAction * > actions () const
void activateWindow ()
void addAction (QAction *action)
void addActions (QList< QAction * > actions)
void adjustSize ()
bool autoFillBackground () const
QPalette::ColorRole backgroundRole () const
QSize baseSize () const
GLuint bindTexture (const QString &fileName)
GLuint bindTexture (const QPixmap &pixmap, GLenum target=GL_TEXTURE_2D, GLint format=GL_RGBA)
GLuint bindTexture (const QImage &image, GLenum target=GL_TEXTURE_2D, GLint format=GL_RGBA)
bool blockSignals (bool b)
QWidgetchildAt (const QPoint &p) const
QWidgetchildAt (int x, int y) const
const QObjectListchildren () const
QRect childrenRect () const
QRegion childrenRegion () const
void clearFocus ()
void clearMask ()
const QGLColormapcolormap () const
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
QRect contentsRect () const
const QGLContextcontext () const
Qt::ContextMenuPolicy contextMenuPolicy () const
void createWinId ()
QCursor cursor () const
void deleteTexture (GLuint tx_id)
int depth () const
int devType () const
bool disconnect (const QObject *receiver, const char *member=0)
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
void doneCurrent ()
bool doubleBuffer () const
void dumpObjectInfo ()
void dumpObjectTree ()
QList< QByteArraydynamicPropertyNames () const
void ensurePolished () const
virtual bool eventFilter (QObject *, QEvent *)
template<typename T>
findChild (const QString &name=QString()) const
template<typename T>
QList< T > findChildren (const QRegExp &re) const
template<typename T>
QList< T > findChildren (const QString &name=QString()) const
Qt::FocusPolicy focusPolicy () const
QWidgetfocusProxy () const
QWidgetfocusWidget () const
const QFontfont () const
QFontInfo fontInfo () const
QFontMetrics fontMetrics () const
QPalette::ColorRole foregroundRole () const
QGLFormat format () const
QRect frameGeometry () const
QSize frameSize () const
const QRectgeometry () const
void getContentsMargins (int *left, int *top, int *right, int *bottom) const
QImage grabFrameBuffer (bool withAlpha=false)
void grabKeyboard ()
void grabMouse (const QCursor &)
void grabMouse ()
int grabShortcut (const QKeySequence &key, Qt::ShortcutContext context=Qt::WindowShortcut)
Qt::HANDLE handle () const
bool hasFocus () const
bool hasMouseTracking () const
int height () const
virtual int heightForWidth (int) const
int heightMM () const
bool inherits (const char *classname) const
QInputContextinputContext ()
virtual QVariant inputMethodQuery (Qt::InputMethodQuery) const
void insertAction (QAction *before, QAction *action)
void insertActions (QAction *before, QList< QAction * > actions)
void installEventFilter (QObject *)
WId internalWinId () const
bool isActiveWindow () const
bool isAncestorOf (const QWidget *child) const
bool isEnabled () const
bool isEnabledTo (QWidget *) const
bool isEnabledToTLW () const
bool isFullScreen () const
bool isHidden () const
bool isLeftToRight () const
bool isMaximized () const
bool isMinimized () const
bool isModal () const
bool isRightToLeft () const
bool isSharing () const
bool isTopLevel () const
bool isValid () const
bool isVisible () const
bool isVisibleTo (QWidget *) const
bool isWidgetType () const
bool isWindow () const
bool isWindowModified () const
void killTimer (int id)
QLayoutlayout () const
Qt::LayoutDirection layoutDirection () const
int logicalDpiX () const
int logicalDpiY () const
void makeCurrent ()
void makeOverlayCurrent ()
QPoint mapFrom (QWidget *, const QPoint &) const
QPoint mapFromGlobal (const QPoint &) const
QPoint mapFromParent (const QPoint &) const
QPoint mapTo (QWidget *, const QPoint &) const
QPoint mapToGlobal (const QPoint &) const
QPoint mapToParent (const QPoint &) const
QRegion mask () const
int maximumHeight () const
QSize maximumSize () const
int maximumWidth () const
int minimumHeight () const
QSize minimumSize () const
virtual QSize minimumSizeHint () const
int minimumWidth () const
void move (const QPoint &)
void move (int x, int y)
void moveToThread (QThread *thread)
QWidgetnextInFocusChain () const
QRect normalGeometry () const
int numColors () const
QString objectName () const
const QGLContextoverlayContext () const
void overrideWindowFlags (Qt::WindowFlags type)
void overrideWindowState (Qt::WindowStates state)
QPaintEnginepaintEngine () const
bool paintingActive () const
const QPalettepalette () const
QObjectparent () const
QWidgetparentWidget () const
int physicalDpiX () const
int physicalDpiY () const
QPoint pos () const
QVariant property (const char *name) const
void qglClearColor (const QColor &c) const
void qglColor (const QColor &c) const
 QGLWidget (const QGLFormat &format, QWidget *parent=0, const QGLWidget *shareWidget=0, Qt::WindowFlags f=0)
 QGLWidget (QGLContext *context, QWidget *parent=0, const QGLWidget *shareWidget=0, Qt::WindowFlags f=0)
 QGLWidget (QWidget *parent=0, const QGLWidget *shareWidget=0, Qt::WindowFlags f=0)
QRect rect () const
void releaseKeyboard ()
void releaseMouse ()
void releaseShortcut (int id)
void removeAction (QAction *action)
void removeEventFilter (QObject *)
QPixmap renderPixmap (int w=0, int h=0, bool useContext=false)
void renderText (double x, double y, double z, const QString &str, const QFont &fnt=QFont(), int listBase=2000)
void renderText (int x, int y, const QString &str, const QFont &fnt=QFont(), int listBase=2000)
void repaint (const QRegion &)
void repaint (const QRect &)
void repaint (int x, int y, int w, int h)
void resize (const QSize &)
void resize (int w, int h)
bool restoreGeometry (const QByteArray &geometry)
QByteArray saveGeometry () const
void scroll (int dx, int dy, const QRect &)
void scroll (int dx, int dy)
void setAcceptDrops (bool on)
void setAccessibleDescription (const QString &description)
void setAccessibleName (const QString &name)
void setAttribute (Qt::WidgetAttribute, bool on=true)
void setAutoFillBackground (bool enabled)
void setBackgroundRole (QPalette::ColorRole)
void setBaseSize (int basew, int baseh)
void setBaseSize (const QSize &)
void setColormap (const QGLColormap &map)
void setContentsMargins (int left, int top, int right, int bottom)
void setContext (QGLContext *context, const QGLContext *shareContext=0, bool deleteOldContext=true)
void setContextMenuPolicy (Qt::ContextMenuPolicy policy)
void setCursor (const QCursor &)
void setFixedHeight (int h)
void setFixedSize (int w, int h)
void setFixedSize (const QSize &)
void setFixedWidth (int w)
void setFocus (Qt::FocusReason reason)
void setFocusPolicy (Qt::FocusPolicy policy)
void setFocusProxy (QWidget *)
void setFont (const QFont &)
void setForegroundRole (QPalette::ColorRole)
void setFormat (const QGLFormat &format)
void setGeometry (const QRect &)
void setGeometry (int x, int y, int w, int h)
void setInputContext (QInputContext *)
void setLayout (QLayout *)
void setLayoutDirection (Qt::LayoutDirection direction)
void setMask (const QRegion &)
void setMask (const QBitmap &)
void setMaximumHeight (int maxh)
void setMaximumSize (int maxw, int maxh)
void setMaximumSize (const QSize &)
void setMaximumWidth (int maxw)
void setMinimumHeight (int minh)
void setMinimumSize (int minw, int minh)
void setMinimumSize (const QSize &)
void setMinimumWidth (int minw)
void setMouseTracking (bool enable)
void setObjectName (const QString &name)
void setPalette (const QPalette &)
void setParent (QObject *)
void setParent (QWidget *parent, Qt::WindowFlags f)
void setParent (QWidget *parent)
bool setProperty (const char *name, const QVariant &value)
void setShortcutAutoRepeat (int id, bool enable=true)
void setShortcutEnabled (int id, bool enable=true)
void setSizeIncrement (int w, int h)
void setSizeIncrement (const QSize &)
void setSizePolicy (QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)
void setSizePolicy (QSizePolicy)
void setStatusTip (const QString &)
void setStyle (QStyle *)
void setToolTip (const QString &)
void setUpdatesEnabled (bool enable)
void setUserData (uint id, QObjectUserData *data)
void setWhatsThis (const QString &)
void setWindowFlags (Qt::WindowFlags type)
void setWindowIcon (const QIcon &icon)
void setWindowIconText (const QString &)
void setWindowModality (Qt::WindowModality windowModality)
void setWindowOpacity (qreal level)
void setWindowRole (const QString &)
void setWindowState (Qt::WindowStates state)
void setWindowSurface (QWindowSurface *surface)
bool signalsBlocked () const
QSize size () const
virtual QSize sizeHint () const
QSize sizeIncrement () const
QSizePolicy sizePolicy () const
void stackUnder (QWidget *)
int startTimer (int interval)
QString statusTip () const
QStylestyle () const
QString styleSheet () const
void swapBuffers ()
bool testAttribute (Qt::WidgetAttribute) const
QThreadthread () const
QString toolTip () const
QWidgettopLevelWidget () const
bool underMouse () const
void unsetCursor ()
void unsetLayoutDirection ()
void update (const QRegion &)
void update (const QRect &)
void update (int x, int y, int w, int h)
void updateGeometry ()
bool updatesEnabled () const
QObjectUserData * userData (uint id) const
QRegion visibleRegion () const
QString whatsThis () const
int width () const
int widthMM () const
QWidgetwindow () const
Qt::WindowFlags windowFlags () const
QIcon windowIcon () const
QString windowIconText () const
Qt::WindowModality windowModality () const
qreal windowOpacity () const
QString windowRole () const
Qt::WindowStates windowState () const
QWindowSurface * windowSurface () const
QString windowTitle () const
Qt::WindowType windowType () const
WId winId () const
int x () const
int y () const
 ~QGLWidget ()

Static Public Member Functions

static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
static QImage convertToGLFormat (const QImage &img)
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
static QWidgetfind (WId)
static QWidgetkeyboardGrabber ()
static QWidgetmouseGrabber ()
static uint registerUserData ()
static void setTabOrder (QWidget *, QWidget *)

Protected Slots

void updateMicroFocus ()

Protected Member Functions

virtual void actionEvent (QActionEvent *)
bool autoBufferSwap () const
virtual void changeEvent (QEvent *)
virtual void childEvent (QChildEvent *)
virtual void closeEvent (QCloseEvent *)
virtual void connectNotify (const char *signal)
virtual void contextMenuEvent (QContextMenuEvent *)
void create (WId=0, bool initializeWindow=true, bool destroyOldWindow=true)
virtual void customEvent (QEvent *)
void destroy (bool destroyWindow=true, bool destroySubWindows=true)
virtual void disconnectNotify (const char *signal)
virtual void dragEnterEvent (QDragEnterEvent *)
virtual void dragLeaveEvent (QDragLeaveEvent *)
virtual void dragMoveEvent (QDragMoveEvent *)
virtual void dropEvent (QDropEvent *)
virtual void enabledChange (bool)
virtual void enterEvent (QEvent *)
bool event (QEvent *)
virtual void focusInEvent (QFocusEvent *)
bool focusNextChild ()
virtual bool focusNextPrevChild (bool next)
virtual void focusOutEvent (QFocusEvent *)
bool focusPreviousChild ()
virtual void fontChange (const QFont &)
int fontDisplayListBase (const QFont &fnt, int listBase=2000)
virtual void glDraw ()
virtual void glInit ()
virtual void hideEvent (QHideEvent *)
virtual void initializeGL ()
virtual void initializeOverlayGL ()
virtual void inputMethodEvent (QInputMethodEvent *)
virtual void keyPressEvent (QKeyEvent *)
virtual void keyReleaseEvent (QKeyEvent *)
virtual void languageChange ()
virtual void leaveEvent (QEvent *)
int metric (PaintDeviceMetric) const
virtual void mouseDoubleClickEvent (QMouseEvent *)
virtual void mouseMoveEvent (QMouseEvent *)
virtual void mousePressEvent (QMouseEvent *)
virtual void mouseReleaseEvent (QMouseEvent *)
virtual void moveEvent (QMoveEvent *)
void paintEvent (QPaintEvent *)
virtual void paintGL ()
virtual void paintOverlayGL ()
virtual void paletteChange (const QPalette &)
int receivers (const char *signal) const
void resetInputContext ()
void resizeEvent (QResizeEvent *)
virtual void resizeGL (int w, int h)
virtual void resizeOverlayGL (int w, int h)
QObjectsender () const
void setAutoBufferSwap (bool on)
virtual void showEvent (QShowEvent *)
virtual void styleChange (QStyle &)
virtual void tabletEvent (QTabletEvent *)
virtual void timerEvent (QTimerEvent *)
virtual void wheelEvent (QWheelEvent *)
virtual void windowActivationChange (bool)

Protected Attributes

QObjectData * d_ptr
ushort painters

Static Protected Attributes

static const QMetaObject staticQtMetaObject

Properties

bool acceptDrops
 whether drop events are enabled for this widget
QString accessibleDescription
 the widget's description as seen by assistive technologies
QString accessibleName
 the widget's name as seen by assistive technologies
bool autoFillBackground
 whether the widget background is filled automatically
QSize baseSize
 the base size of the widget
QRect childrenRect
 the bounding rectangle of the widget's children
QRegion childrenRegion
 the combined region occupied by the widget's children
Qt::ContextMenuPolicy contextMenuPolicy
 how the widget shows a context menu
QCursor cursor
 the cursor shape for this widget
bool enabled
 whether the widget is enabled
bool focus
 whether this widget (or its focus proxy) has the keyboard input focus
Qt::FocusPolicy focusPolicy
 the way the widget accepts keyboard focus
QFont font
 the font currently set for the widget
QRect frameGeometry
 geometry of the widget relative to its parent including any window frame
QSize frameSize
 the size of the widget including any window frame
bool fullScreen
 whether the widget is full screen
QRect geometry
 the geometry of the widget relative to its parent and excluding the window frame
int height
 the height of the widget excluding any window frame
bool isActiveWindow
 whether this widget's window is the active window
Qt::LayoutDirection layoutDirection
 the layout direction for this widget
bool maximized
 whether this widget is maximized
int maximumHeight
 the widget's maximum height
QSize maximumSize
 the widget's maximum size
int maximumWidth
 the widget's maximum width
bool minimized
 whether this widget is minimized (iconified)
int minimumHeight
 the widget's minimum height
QSize minimumSize
 the widget's minimum size
QSize minimumSizeHint
 the recommended minimum size for the widget
int minimumWidth
 the widget's minimum width
bool modal
 whether the widget is a modal widget
bool mouseTracking
 whether mouse tracking is enabled for the widget
QRect normalGeometry
 the geometry of the widget as it will appear when shown as a normal (not maximized or fullscreen) toplevel widget
QString objectName
 the name of this object
QPalette palette
 the widget's palette
QPoint pos
 the position of the widget within its parent widget
QRect rect
 the internal geometry of the widget excluding any window frame
QSize size
 the size of the widget excluding any window frame
QSize sizeHint
 the recommended size for the widget
QSize sizeIncrement
 the size increment of the widget
QSizePolicy sizePolicy
 the default layout behavior of the widget
QString statusTip
 the widget's status tip
QString styleSheet
 the widget's style sheet
QString toolTip
 the widget's tooltip
bool updatesEnabled
 whether updates are enabled
bool visible
 whether the widget is visible
QString whatsThis
 the widget's What's This help text.
int width
 the width of the widget excluding any window frame
QIcon windowIcon
 the widget's icon
QString windowIconText
 the widget's icon text
Qt::WindowModality windowModality
 which windows are blocked by the modal widget
bool windowModified
 whether the document shown in the window has unsaved changes
double windowOpacity
 The level of opacity for the window.
QString windowTitle
 the window title (caption)
int x
 the x coordinate of the widget relative to its parent including any window frame
int y
 the y coordinate of the widget relative to its parent and including any window frame

Friends

class QCoreApplication
class QCoreApplicationPrivate
class QGLContext
class QGLDrawable
class QGLOverlayWidget
class QGLPixelBuffer
class QGLPixelBufferPrivate
struct QMetaObject
class QOpenGLPaintEngine
class QThreadData
class QWidget

Related Functions

(Note that these are not member functions.)

qFindChild (const QObject *obj, const QString &name=QString(), T dummy=0)
qFindChild (const QObject *obj, const QString &name)
QList< T > qFindChildren (const QObject *obj, const QString &name=QString(), T dummy=0)
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
QList< T > qFindChildren (const QObject *obj, const QString &name)
T * qobject_cast (QObject *object)
 QObjectList
void * qt_find_obj_child (QObject *parent, const char *type, const QString &name)
const Q_GUI_EXPORT QX11Infoqt_x11Info (const QPaintDevice *pd)
 QWidgetList
 WId

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index