Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QOpenGLWidget Class Reference

\inmodule QtOpenGLWidgets More...

#include <qopenglwidget.h>

+ Inheritance diagram for QOpenGLWidget:
+ Collaboration diagram for QOpenGLWidget:

Public Types

enum  UpdateBehavior { NoPartialUpdate , PartialUpdate }
 
enum  TargetBuffer : uint8_t { LeftBuffer = 0 , RightBuffer }
 
- Public Types inherited from QWidget
enum  RenderFlag { DrawWindowBackground = 0x1 , DrawChildren = 0x2 , IgnoreMask = 0x4 }
 This enum describes how to render the widget when calling QWidget::render(). More...
 
- Public Types inherited from QPaintDevice
enum  PaintDeviceMetric {
  PdmWidth = 1 , PdmHeight , PdmWidthMM , PdmHeightMM ,
  PdmNumColors , PdmDepth , PdmDpiX , PdmDpiY ,
  PdmPhysicalDpiX , PdmPhysicalDpiY , PdmDevicePixelRatio , PdmDevicePixelRatioScaled
}
 

Signals

void aboutToCompose ()
 This signal is emitted when the widget's top-level window is about to begin composing the textures of its QOpenGLWidget children and the other widgets.
 
void frameSwapped ()
 This signal is emitted after the widget's top-level window has finished composition and returned from its potentially blocking QOpenGLContext::swapBuffers() call.
 
void aboutToResize ()
 This signal is emitted when the widget's size is changed and therefore the framebuffer object is going to be recreated.
 
void resized ()
 This signal is emitted right after the framebuffer object has been recreated due to resizing the widget.
 
- Signals inherited from QWidget
void windowTitleChanged (const QString &title)
 This signal is emitted when the window's title has changed, with the new title as an argument.
 
void windowIconChanged (const QIcon &icon)
 This signal is emitted when the window's icon has changed, with the new icon as an argument.
 
void windowIconTextChanged (const QString &iconText)
 This signal is emitted when the window's icon text has changed, with the new iconText as an argument.
 
void customContextMenuRequested (const QPoint &pos)
 This signal is emitted when the widget's \l contextMenuPolicy is Qt::CustomContextMenu, and the user has requested a context menu on the widget.
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

 QOpenGLWidget (QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
 Constructs a widget which is a child of parent, with widget flags set to f.
 
 ~QOpenGLWidget ()
 Destroys the QOpenGLWidget instance, freeing its resources.
 
void setUpdateBehavior (UpdateBehavior updateBehavior)
 Sets this widget's update behavior to updateBehavior.
 
UpdateBehavior updateBehavior () const
 
void setFormat (const QSurfaceFormat &format)
 Sets the requested surface format.
 
QSurfaceFormat format () const
 Returns the context and surface format used by this widget and its toplevel window.
 
GLenum textureFormat () const
 
void setTextureFormat (GLenum texFormat)
 Sets a custom internal texture format of texFormat.
 
bool isValid () const
 
void makeCurrent ()
 Prepares for rendering OpenGL content for this widget by making the corresponding context current and binding the framebuffer object in that context.
 
void makeCurrent (TargetBuffer targetBuffer)
 Prepares for rendering OpenGL content for this widget by making the context for the passed in buffer current and binding the framebuffer object in that context.
 
void doneCurrent ()
 Releases the context.
 
QOpenGLContextcontext () const
 
GLuint defaultFramebufferObject () const
 
GLuint defaultFramebufferObject (TargetBuffer targetBuffer) const
 
QImage grabFramebuffer ()
 Renders and returns a 32-bit RGB image of the framebuffer.
 
QImage grabFramebuffer (TargetBuffer targetBuffer)
 Renders and returns a 32-bit RGB image of the framebuffer of the specified target buffer.
 
TargetBuffer currentTargetBuffer () const
 Returns the currently active target buffer.
 
- Public Member Functions inherited from QWidget
 QWidget (QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
 Constructs a widget which is a child of parent, with widget flags set to f.
 
 ~QWidget ()
 Destroys the widget.
 
int devType () const override
 
WId winId () const
 Returns the window system identifier of the widget.
 
void createWinId ()
 
WId internalWinId () const
 
WId effectiveWinId () const
 
QStylestyle () const
 
void setStyle (QStyle *)
 Sets the widget's GUI style to style.
 
bool isWindow () const
 Returns true if the widget is an independent window, otherwise returns false.
 
bool isModal () const
 
Qt::WindowModality windowModality () const
 
void setWindowModality (Qt::WindowModality windowModality)
 
bool isEnabled () const
 
bool isEnabledTo (const QWidget *) const
 Returns true if this widget would become enabled if ancestor is enabled; otherwise returns false.
 
QRect frameGeometry () const
 
const QRectgeometry () const
 
QRect normalGeometry () const
 
int x () const
 
int y () const
 
QPoint pos () const
 
QSize frameSize () const
 
QSize size () const
 
int width () const
 
int height () const
 
QRect rect () const
 
QRect childrenRect () const
 
QRegion childrenRegion () const
 
QSize minimumSize () const
 
QSize maximumSize () const
 
int minimumWidth () const
 
int minimumHeight () const
 
int maximumWidth () const
 
int maximumHeight () const
 
void setMinimumSize (const QSize &)
 
void setMinimumSize (int minw, int minh)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This function corresponds to setMinimumSize(QSize(minw, minh)).
 
void setMaximumSize (const QSize &)
 
void setMaximumSize (int maxw, int maxh)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This function corresponds to setMaximumSize(QSize(maxw, maxh)).
 
void setMinimumWidth (int minw)
 
void setMinimumHeight (int minh)
 
void setMaximumWidth (int maxw)
 
void setMaximumHeight (int maxh)
 
QSize sizeIncrement () const
 
void setSizeIncrement (const QSize &)
 
void setSizeIncrement (int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Sets the x (width) size increment to w and the y (height) size increment to h.
 
QSize baseSize () const
 
void setBaseSize (const QSize &)
 
void setBaseSize (int basew, int baseh)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This corresponds to setBaseSize(QSize(basew, baseh)).
 
void setFixedSize (const QSize &)
 Sets both the minimum and maximum sizes of the widget to s, thereby preventing it from ever growing or shrinking.
 
void setFixedSize (int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Sets the width of the widget to w and the height to h.
 
void setFixedWidth (int w)
 Sets both the minimum and maximum width of the widget to w without changing the heights.
 
void setFixedHeight (int h)
 Sets both the minimum and maximum heights of the widget to h without changing the widths.
 
QPointF mapToGlobal (const QPointF &) const
 Translates the widget coordinate pos to global screen coordinates.
 
QPoint mapToGlobal (const QPoint &) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QPointF mapFromGlobal (const QPointF &) const
 Translates the global screen coordinate pos to widget coordinates.
 
QPoint mapFromGlobal (const QPoint &) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QPointF mapToParent (const QPointF &) const
 Translates the widget coordinate pos to a coordinate in the parent widget.
 
QPoint mapToParent (const QPoint &) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QPointF mapFromParent (const QPointF &) const
 Translates the parent widget coordinate pos to widget coordinates.
 
QPoint mapFromParent (const QPoint &) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QPointF mapTo (const QWidget *, const QPointF &) const
 Translates the widget coordinate pos to the coordinate system of parent.
 
QPoint mapTo (const QWidget *, const QPoint &) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QPointF mapFrom (const QWidget *, const QPointF &) const
 Translates the widget coordinate pos from the coordinate system of parent to this widget's coordinate system.
 
QPoint mapFrom (const QWidget *, const QPoint &) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QWidgetwindow () const
 Returns the window for this widget, i.e.
 
QWidgetnativeParentWidget () const
 
QWidgettopLevelWidget () const
 
const QPalettepalette () const
 
void setPalette (const QPalette &)
 
void setBackgroundRole (QPalette::ColorRole)
 Sets the background role of the widget to role.
 
QPalette::ColorRole backgroundRole () const
 Returns the background role of the widget.
 
void setForegroundRole (QPalette::ColorRole)
 Sets the foreground role of the widget to role.
 
QPalette::ColorRole foregroundRole () const
 Returns the foreground role.
 
const QFontfont () const
 
void setFont (const QFont &)
 
QFontMetrics fontMetrics () const
 Returns the font metrics for the widget's current font.
 
QFontInfo fontInfo () const
 Returns the font info for the widget's current font.
 
QCursor cursor () const
 
void setCursor (const QCursor &)
 
void unsetCursor ()
 
void setMouseTracking (bool enable)
 
bool hasMouseTracking () const
 
bool underMouse () const
 Returns true if the widget is under the mouse cursor; otherwise returns false.
 
void setTabletTracking (bool enable)
 
bool hasTabletTracking () const
 
void setMask (const QBitmap &)
 Causes only the pixels of the widget for which bitmap has a corresponding 1 bit to be visible.
 
void setMask (const QRegion &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Causes only the parts of the widget which overlap region to be visible.
 
QRegion mask () const
 Returns the mask currently set on a widget.
 
void clearMask ()
 Removes any mask set by setMask().
 
void render (QPaintDevice *target, const QPoint &targetOffset=QPoint(), const QRegion &sourceRegion=QRegion(), RenderFlags renderFlags=RenderFlags(DrawWindowBackground|DrawChildren))
 
void render (QPainter *painter, const QPoint &targetOffset=QPoint(), const QRegion &sourceRegion=QRegion(), RenderFlags renderFlags=RenderFlags(DrawWindowBackground|DrawChildren))
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Renders the widget into the painter's QPainter::device().
 
Q_INVOKABLE QPixmap grab (const QRect &rectangle=QRect(QPoint(0, 0), QSize(-1, -1)))
 
void grabGesture (Qt::GestureType type, Qt::GestureFlags flags=Qt::GestureFlags())
 Subscribes the widget to a given gesture with specific flags.
 
void ungrabGesture (Qt::GestureType type)
 Unsubscribes the widget from a given gesture type.
 
QString styleSheet () const
 
QString windowTitle () const
 
void setWindowIcon (const QIcon &icon)
 
QIcon windowIcon () const
 
void setWindowIconText (const QString &)
 
QString windowIconText () const
 
void setWindowRole (const QString &)
 Sets the window's role to role.
 
QString windowRole () const
 Returns the window's role, or an empty string.
 
void setWindowFilePath (const QString &filePath)
 
QString windowFilePath () const
 
void setWindowOpacity (qreal level)
 
qreal windowOpacity () const
 
bool isWindowModified () const
 
void setLayoutDirection (Qt::LayoutDirection direction)
 
Qt::LayoutDirection layoutDirection () const
 
void unsetLayoutDirection ()
 
void setLocale (const QLocale &locale)
 
QLocale locale () const
 
void unsetLocale ()
 
bool isRightToLeft () const
 
bool isLeftToRight () const
 
bool isActiveWindow () const
 
void activateWindow ()
 Sets the top-level widget containing this widget to be the active window.
 
void clearFocus ()
 Takes keyboard input focus from the widget.
 
void setFocus (Qt::FocusReason reason)
 Gives the keyboard input focus to this widget (or its focus proxy) if this widget or one of its parents is the \l{isActiveWindow()}{active window}.
 
Qt::FocusPolicy focusPolicy () const
 
void setFocusPolicy (Qt::FocusPolicy policy)
 
bool hasFocus () const
 
void setFocusProxy (QWidget *)
 Sets the widget's focus proxy to widget w.
 
QWidgetfocusProxy () const
 Returns the focus proxy, or \nullptr if there is no focus proxy.
 
Qt::ContextMenuPolicy contextMenuPolicy () const
 
void setContextMenuPolicy (Qt::ContextMenuPolicy policy)
 
void grabMouse ()
 Grabs the mouse input.
 
void grabMouse (const QCursor &)
 
void releaseMouse ()
 Releases the mouse grab.
 
void grabKeyboard ()
 Grabs the keyboard input.
 
void releaseKeyboard ()
 Releases the keyboard grab.
 
int grabShortcut (const QKeySequence &key, Qt::ShortcutContext context=Qt::WindowShortcut)
 Adds a shortcut to Qt's shortcut system that watches for the given key sequence in the given context.
 
void releaseShortcut (int id)
 Removes the shortcut with the given id from Qt's shortcut system.
 
void setShortcutEnabled (int id, bool enable=true)
 If enable is true, the shortcut with the given id is enabled; otherwise the shortcut is disabled.
 
void setShortcutAutoRepeat (int id, bool enable=true)
 
bool updatesEnabled () const
 
void setUpdatesEnabled (bool enable)
 
void update (int x, int y, int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version updates a rectangle (x, y, w, h) inside the widget.
 
void update (const QRect &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version updates a rectangle rect inside the widget.
 
void update (const QRegion &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version repaints a region rgn inside the widget.
 
void repaint (int x, int y, int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version repaints a rectangle (x, y, w, h) inside the widget.
 
void repaint (const QRect &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version repaints a rectangle rect inside the widget.
 
void repaint (const QRegion &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version repaints a region rgn inside the widget.
 
void stackUnder (QWidget *)
 Places the widget under w in the parent widget's stack.
 
void move (int x, int y)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This corresponds to move(QPoint(x, y)).
 
void move (const QPoint &)
 
void resize (int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This corresponds to resize(QSize(w, h)).
 
void resize (const QSize &)
 
void setGeometry (int x, int y, int w, int h)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This corresponds to setGeometry(QRect(x, y, w, h)).
 
void setGeometry (const QRect &)
 
QByteArray saveGeometry () const
 
bool restoreGeometry (const QByteArray &geometry)
 
void adjustSize ()
 Adjusts the size of the widget to fit its contents.
 
bool isVisible () const
 
bool isVisibleTo (const QWidget *) const
 Returns true if this widget would become visible if ancestor is shown; otherwise returns false.
 
bool isHidden () const
 Returns true if the widget is hidden, otherwise returns false.
 
bool isMinimized () const
 
bool isMaximized () const
 
bool isFullScreen () const
 
Qt::WindowStates windowState () const
 Returns the current window state.
 
void setWindowState (Qt::WindowStates state)
 Sets the window state to windowState.
 
void overrideWindowState (Qt::WindowStates state)
 
virtual QSize sizeHint () const
 
virtual QSize minimumSizeHint () const
 
QSizePolicy sizePolicy () const
 
void setSizePolicy (QSizePolicy)
 
void setSizePolicy (QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Sets the size policy of the widget to horizontal and vertical, with standard stretch and no height-for-width.
 
virtual int heightForWidth (int) const
 Returns the preferred height for this widget, given the width w.
 
virtual bool hasHeightForWidth () const
 
QRegion visibleRegion () const
 Returns the unobscured region where paint events can occur.
 
void setContentsMargins (int left, int top, int right, int bottom)
 Sets the margins around the contents of the widget to have the sizes left, top, right, and bottom.
 
void setContentsMargins (const QMargins &margins)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QMargins contentsMargins () const
 The contentsMargins function returns the widget's contents margins.
 
QRect contentsRect () const
 Returns the area inside the widget's margins.
 
QLayoutlayout () const
 Returns the layout manager that is installed on this widget, or \nullptr if no layout manager is installed.
 
void setLayout (QLayout *)
 Sets the layout manager for this widget to layout.
 
void updateGeometry ()
 Notifies the layout system that this widget has changed and may need to change geometry.
 
void setParent (QWidget *parent)
 Sets the parent of the widget to parent, and resets the window flags.
 
void setParent (QWidget *parent, Qt::WindowFlags f)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This function also takes widget flags, f as an argument.
 
void scroll (int dx, int dy)
 Scrolls the widget including its children dx pixels to the right and dy downward.
 
void scroll (int dx, int dy, const QRect &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This version only scrolls r and does not move the children of the widget.
 
QWidgetfocusWidget () const
 Returns the last child of this widget that setFocus had been called on.
 
QWidgetnextInFocusChain () const
 Returns the next widget in this widget's focus chain.
 
QWidgetpreviousInFocusChain () const
 The previousInFocusChain function returns the previous widget in this widget's focus chain.
 
bool acceptDrops () const
 
void setAcceptDrops (bool on)
 
void addAction (QAction *action)
 Appends the action action to this widget's list of actions.
 
void addActions (const QList< QAction * > &actions)
 Appends the actions actions to this widget's list of actions.
 
void insertActions (QAction *before, const QList< QAction * > &actions)
 Inserts the actions actions to this widget's list of actions, before the action before.
 
void insertAction (QAction *before, QAction *action)
 Inserts the action action to this widget's list of actions, before the action before.
 
void removeAction (QAction *action)
 Removes the action action from this widget's list of actions.
 
QList< QAction * > actions () const
 Returns the (possibly empty) list of this widget's actions.
 
QActionaddAction (const QString &text)
 
QActionaddAction (const QIcon &icon, const QString &text)
 
QActionaddAction (const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type=Qt::AutoConnection)
 
QActionaddAction (const QIcon &icon, const QString &text, const QObject *receiver, const char *member, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename... Args, typename = compatible_action_slot_args<Args...>>
QActionaddAction (const QString &text, Args &&...args)
 
template<typename... Args, typename = compatible_action_slot_args<Args...>>
QActionaddAction (const QIcon &icon, const QString &text, Args &&...args)
 
QWidgetparentWidget () const
 Returns the parent of this widget, or \nullptr if it does not have any parent widget.
 
void setWindowFlags (Qt::WindowFlags type)
 
Qt::WindowFlags windowFlags () const
 Window flags are a combination of a type (e.g.
 
void setWindowFlag (Qt::WindowType, bool on=true)
 
void overrideWindowFlags (Qt::WindowFlags type)
 Sets the window flags for the widget to flags, without telling the window system.
 
Qt::WindowType windowType () const
 Returns the window type of this widget.
 
QWidgetchildAt (int x, int y) const
 Returns the visible child widget at the position ({x}, {y}) in the widget's coordinate system.
 
QWidgetchildAt (const QPoint &p) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Returns the visible child widget at point p in the widget's own coordinate system.
 
void setAttribute (Qt::WidgetAttribute, bool on=true)
 Sets the attribute attribute on this widget if on is true; otherwise clears the attribute.
 
bool testAttribute (Qt::WidgetAttribute) const
 Returns true if attribute attribute is set on this widget; otherwise returns false.
 
QPaintEnginepaintEngine () const override
 Returns the widget's paint engine.
 
void ensurePolished () const
 Ensures that the widget and its children have been polished by QStyle (i.e., have a proper font and palette).
 
bool isAncestorOf (const QWidget *child) const
 Returns true if this widget is a parent, (or grandparent and so on to any level), of the given child, and both widgets are within the same window; otherwise returns false.
 
bool autoFillBackground () const
 
void setAutoFillBackground (bool enabled)
 
QBackingStorebackingStore () const
 
QWindowwindowHandle () const
 If this is a native widget, return the associated QWindow.
 
QScreenscreen () const
 Returns the screen the widget is on.
 
void setScreen (QScreen *)
 Sets the screen on which the widget should be shown to screen.
 
virtual QVariant inputMethodQuery (Qt::InputMethodQuery) const
 This method is only relevant for input widgets.
 
Qt::InputMethodHints inputMethodHints () const
 
void setInputMethodHints (Qt::InputMethodHints hints)
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 
- Public Member Functions inherited from QPaintDevice
virtual ~QPaintDevice ()
 
bool paintingActive () const
 
int width () const
 
int height () const
 
int widthMM () const
 
int heightMM () const
 
int logicalDpiX () const
 
int logicalDpiY () const
 
int physicalDpiX () const
 
int physicalDpiY () const
 
qreal devicePixelRatio () const
 
qreal devicePixelRatioF () const
 
int colorCount () const
 
int depth () const
 

Protected Member Functions

virtual void initializeGL ()
 This virtual function is called once before the first call to paintGL() or resizeGL().
 
virtual void resizeGL (int w, int h)
 This virtual function is called whenever the widget has been resized.
 
virtual void paintGL ()
 This virtual function is called whenever the widget needs to be painted.
 
void paintEvent (QPaintEvent *e) override
 Handles paint events.
 
void resizeEvent (QResizeEvent *e) override
 Handles resize events that are passed in the e event parameter.
 
bool event (QEvent *e) override
 \reimp
 
int metric (QPaintDevice::PaintDeviceMetric metric) const override
 \reimp
 
QPaintDeviceredirected (QPoint *p) const override
 \reimp
 
QPaintEnginepaintEngine () const override
 \reimp
 
- Protected Member Functions inherited from QWidget
bool event (QEvent *event) override
 This is the main event handler; it handles event event.
 
virtual void mousePressEvent (QMouseEvent *event)
 This event handler, for event event, can be reimplemented in a subclass to receive mouse press events for the widget.
 
virtual void mouseReleaseEvent (QMouseEvent *event)
 This event handler, for event event, can be reimplemented in a subclass to receive mouse release events for the widget.
 
virtual void mouseDoubleClickEvent (QMouseEvent *event)
 This event handler, for event event, can be reimplemented in a subclass to receive mouse double click events for the widget.
 
virtual void mouseMoveEvent (QMouseEvent *event)
 This event handler, for event event, can be reimplemented in a subclass to receive mouse move events for the widget.
 
virtual void keyPressEvent (QKeyEvent *event)
 This event handler, for event event, can be reimplemented in a subclass to receive key press events for the widget.
 
virtual void keyReleaseEvent (QKeyEvent *event)
 This event handler, for event event, can be reimplemented in a subclass to receive key release events for the widget.
 
virtual void focusInEvent (QFocusEvent *event)
 This event handler can be reimplemented in a subclass to receive keyboard focus events (focus received) for the widget.
 
virtual void focusOutEvent (QFocusEvent *event)
 This event handler can be reimplemented in a subclass to receive keyboard focus events (focus lost) for the widget.
 
virtual void enterEvent (QEnterEvent *event)
 This event handler can be reimplemented in a subclass to receive widget enter events which are passed in the event parameter.
 
virtual void leaveEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive widget leave events which are passed in the event parameter.
 
virtual void moveEvent (QMoveEvent *event)
 This event handler can be reimplemented in a subclass to receive widget move events which are passed in the event parameter.
 
virtual void closeEvent (QCloseEvent *event)
 This event handler is called with the given event when Qt receives a window close request for a top-level widget from the window system.
 
virtual void contextMenuEvent (QContextMenuEvent *event)
 This event handler, for event event, can be reimplemented in a subclass to receive widget context menu events.
 
virtual void actionEvent (QActionEvent *event)
 This event handler is called with the given event whenever the widget's actions are changed.
 
virtual void showEvent (QShowEvent *event)
 This event handler can be reimplemented in a subclass to receive widget show events which are passed in the event parameter.
 
virtual void hideEvent (QHideEvent *event)
 This event handler can be reimplemented in a subclass to receive widget hide events.
 
virtual bool nativeEvent (const QByteArray &eventType, void *message, qintptr *result)
 This special event handler can be reimplemented in a subclass to receive native platform events identified by eventType which are passed in the message parameter.
 
virtual void changeEvent (QEvent *)
 This event handler can be reimplemented to handle state changes.
 
int metric (PaintDeviceMetric) const override
 Internal implementation of the virtual QPaintDevice::metric() function.
 
void initPainter (QPainter *painter) const override
 Initializes the painter pen, background and font to the same as the given widget's.
 
QPaintDeviceredirected (QPoint *offset) const override
 
QPaintersharedPainter () const override
 
virtual void inputMethodEvent (QInputMethodEvent *)
 This event handler, for event event, can be reimplemented in a subclass to receive Input Method composition events.
 
void create (WId=0, bool initializeWindow=true, bool destroyOldWindow=true)
 Creates a new widget window.
 
void destroy (bool destroyWindow=true, bool destroySubWindows=true)
 Frees up window system resources.
 
virtual bool focusNextPrevChild (bool next)
 Finds a new widget to give the keyboard focus to, as appropriate for Tab and Shift+Tab, and returns true if it can find a new widget, or false if it can't.
 
bool focusNextChild ()
 Finds a new widget to give the keyboard focus to, as appropriate for \uicontrol Tab, and returns true if it can find a new widget, or false if it can't.
 
bool focusPreviousChild ()
 Finds a new widget to give the keyboard focus to, as appropriate for \uicontrol Shift+Tab, and returns true if it can find a new widget, or false if it can't.
 
 QWidget (QWidgetPrivate &d, QWidget *parent, Qt::WindowFlags f)
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 
- Protected Member Functions inherited from QPaintDevice
 QPaintDevice () noexcept
 

Additional Inherited Members

- Public Slots inherited from QWidget
void setEnabled (bool)
 
void setDisabled (bool)
 Disables widget input events if disable is true; otherwise enables input events.
 
void setWindowModified (bool)
 
void setWindowTitle (const QString &)
 
void setStyleSheet (const QString &styleSheet)
 
void setFocus ()
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Gives the keyboard input focus to this widget (or its focus proxy) if this widget or one of its parents is the \l{isActiveWindow()}{active window}.
 
void update ()
 Updates the widget unless updates are disabled or the widget is hidden.
 
void repaint ()
 Repaints the widget directly by calling paintEvent() immediately, unless updates are disabled or the widget is hidden.
 
virtual void setVisible (bool visible)
 
void setHidden (bool hidden)
 Convenience function, equivalent to setVisible(!hidden).
 
void show ()
 Shows the widget and its child widgets.
 
void hide ()
 Hides the widget.
 
void showMinimized ()
 Shows the widget minimized, as an icon.
 
void showMaximized ()
 Shows the widget maximized.
 
void showFullScreen ()
 Shows the widget in full-screen mode.
 
void showNormal ()
 Restores the widget after it has been maximized or minimized.
 
bool close ()
 Closes this widget.
 
void raise ()
 Raises this widget to the top of the parent widget's stack.
 
void lower ()
 Lowers the widget to the bottom of the parent widget's stack.
 
- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 
- Static Public Member Functions inherited from QWidget
static void setTabOrder (QWidget *, QWidget *)
 Puts the second widget after the first widget in the focus order.
 
static void setTabOrder (std::initializer_list< QWidget * > widgets)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
static QWidgetmouseGrabber ()
 Returns the widget that is currently grabbing the mouse input.
 
static QWidgetkeyboardGrabber ()
 Returns the widget that is currently grabbing the keyboard input.
 
static QWidgetfind (WId)
 Returns a pointer to the widget with window identifier/handle id.
 
static QWidgetcreateWindowContainer (QWindow *window, QWidget *parent=nullptr, Qt::WindowFlags flags=Qt::WindowFlags())
 Creates a QWidget that makes it possible to embed window into a QWidget-based application.
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Static Public Member Functions inherited from QPaintDevice
static qreal devicePixelRatioFScale ()
 
- Protected Slots inherited from QWidget
void updateMicroFocus (Qt::InputMethodQuery query=Qt::ImQueryAll)
 Updates the widget's micro focus and informs input methods that the state specified by query has changed.
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Protected Attributes inherited from QPaintDevice
ushort painters
 
- Properties inherited from QWidget
bool modal
 whether the widget is a modal widget
 
Qt::WindowModality windowModality
 which windows are blocked by the modal widget
 
bool enabled
 whether the widget is enabled
 
QRect geometry
 the geometry of the widget relative to its parent and excluding the window frame
 
QRect frameGeometry
 geometry of the widget relative to its parent including any window frame
 
QRect normalGeometry
 the geometry of the widget as it will appear when shown as a normal (not maximized or full screen) top-level widget
 
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
 
QPoint pos
 the position of the widget within its parent widget
 
QSize frameSize
 the size of the widget including any window frame
 
QSize size
 the size of the widget excluding any window frame
 
int width
 the width of the widget excluding any window frame
 
int height
 the height of the widget excluding any window frame
 
QRect rect
 the internal geometry of the widget excluding any window frame
 
QRect childrenRect
 the bounding rectangle of the widget's children
 
QRegion childrenRegion
 the combined region occupied by the widget's children
 
QSizePolicy sizePolicy
 the default layout behavior of the widget
 
QSize minimumSize
 the widget's minimum size
 
QSize maximumSize
 the widget's maximum size in pixels
 
int minimumWidth
 the widget's minimum width in pixels
 
int minimumHeight
 the widget's minimum height in pixels
 
int maximumWidth
 the widget's maximum width in pixels
 
int maximumHeight
 the widget's maximum height in pixels
 
QSize sizeIncrement
 the size increment of the widget
 
QSize baseSize
 the base size of the widget
 
QPalette palette
 the widget's palette
 
QFont font
 the font currently set for the widget
 
QCursor cursor
 the cursor shape for this widget
 
bool mouseTracking
 whether mouse tracking is enabled for the widget
 
bool tabletTracking
 whether tablet tracking is enabled for the widget
 
bool isActiveWindow
 whether this widget's window is the active window
 
Qt::FocusPolicy focusPolicy
 the way the widget accepts keyboard focus
 
bool focus
 whether this widget (or its focus proxy) has the keyboard input focus
 
Qt::ContextMenuPolicy contextMenuPolicy
 how the widget shows a context menu
 
bool updatesEnabled
 whether updates are enabled
 
bool visible
 whether the widget is visible
 
bool minimized
 whether this widget is minimized (iconified)
 
bool maximized
 whether this widget is maximized
 
bool fullScreen
 whether the widget is shown in full screen mode
 
QSize sizeHint
 the recommended size for the widget
 
QSize minimumSizeHint
 the recommended minimum size for the widget
 
bool acceptDrops
 whether drop events are enabled for this widget
 
QString windowTitle
 the window title (caption)
 
QIcon windowIcon
 the widget's icon
 
QString windowIconText
 the text to be displayed on the icon of a minimized window
 
double windowOpacity
 The level of opacity for the window.
 
bool windowModified
 whether the document shown in the window has unsaved changes
 
Qt::LayoutDirection layoutDirection
 the layout direction for this widget.
 
bool autoFillBackground
 whether the widget background is filled automatically
 
QString styleSheet
 the widget's style sheet
 
QLocale locale
 the widget's locale
 
QString windowFilePath
 the file path associated with a widget
 
Qt::InputMethodHints inputMethodHints
 What input method specific hints the widget has.
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Detailed Description

\inmodule QtOpenGLWidgets

Since
5.4

The QOpenGLWidget class is a widget for rendering OpenGL graphics.

QOpenGLWidget provides functionality for displaying OpenGL graphics integrated into a Qt application. It is very simple to use: Make your class 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.

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

\list

  • 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 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 resources and state. Gets called once before the first time resizeGL() or paintGL() is called. \endlist

If you need to trigger a repaint from places other than paintGL() (a typical example is when using \l{QChronoTimer}{timers} to animate scenes), you should call the widget's update() function to schedule an update.

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.

All rendering happens into an OpenGL framebuffer object. makeCurrent() ensure that it is bound in the context. Keep this in mind when creating and binding additional framebuffer objects in the rendering code in paintGL(). Never re-bind the framebuffer with ID 0. Instead, call defaultFramebufferObject() to get the ID that should be bound.

QOpenGLWidget allows using different OpenGL versions and profiles when the platform supports it. Just set the requested format via setFormat(). Keep in mind however that having multiple QOpenGLWidget instances in the same window requires that they all use the same format, or at least formats that do not make the contexts non-sharable. To overcome this issue, prefer using QSurfaceFormat::setDefaultFormat() instead of setFormat().

Note
Calling QSurfaceFormat::setDefaultFormat() before constructing the QApplication instance is mandatory on some platforms (for example, \macos) when an OpenGL core profile context is requested. This is to ensure that resource sharing between contexts stays functional as all internal contexts are created using the correct version and profile.

Definition at line 17 of file qopenglwidget.h.

Member Enumeration Documentation

◆ TargetBuffer

Since
6.5

Specifies the buffer to use when stereoscopic rendering is enabled, which is toggled by setting \l QSurfaceFormat::StereoBuffers.

Note
LeftBuffer is always the default and used as fallback value when stereoscopic rendering is disabled or not supported by the graphics driver.

\value LeftBuffer \value RightBuffer

Enumerator
LeftBuffer 
RightBuffer 

Definition at line 29 of file qopenglwidget.h.

◆ UpdateBehavior

Since
5.5

This enum describes the update semantics of QOpenGLWidget.

\value NoPartialUpdate QOpenGLWidget will discard the contents of the color buffer and the ancillary buffers after the QOpenGLWidget is rendered to screen. This is the same behavior that can be expected by calling QOpenGLContext::swapBuffers with a default opengl enabled QWindow as the argument. NoPartialUpdate can have some performance benefits on certain hardware architectures common in the mobile and embedded space when a framebuffer object is used as the rendering target. The framebuffer object is invalidated between frames with glInvalidateFramebuffer (if supported), or, as fallbacks, glDiscardFramebufferEXT (if supported) or a call to glClear.

\value PartialUpdate The framebuffer objects color buffer and ancillary buffers are not invalidated between frames.

See also
updateBehavior(), setUpdateBehavior()
Enumerator
NoPartialUpdate 
PartialUpdate 

Definition at line 23 of file qopenglwidget.h.

Constructor & Destructor Documentation

◆ QOpenGLWidget()

QOpenGLWidget::QOpenGLWidget ( QWidget * parent = nullptr,
Qt::WindowFlags f = Qt::WindowFlags() )
explicit

Constructs a widget which is a child of parent, with widget flags set to f.

Definition at line 1129 of file qopenglwidget.cpp.

References d, QPlatformIntegration::OpenGL, QGuiApplicationPrivate::platformIntegration(), Q_UNLIKELY, qWarning, and QPlatformIntegration::RhiBasedRendering.

+ Here is the call graph for this function:

◆ ~QOpenGLWidget()

QOpenGLWidget::~QOpenGLWidget ( )

Destroys the QOpenGLWidget instance, freeing its resources.

The QOpenGLWidget's context is made current in the destructor, allowing for safe destruction of any child object that may need to release OpenGL resources belonging to the context provided by this widget.

Warning
if you have objects wrapping OpenGL resources (such as QOpenGLBuffer, QOpenGLShaderProgram, etc.) as members of a OpenGLWidget subclass, you may need to add a call to makeCurrent() in that subclass' destructor as well. Due to the rules of C++ object destruction, those objects will be destroyed {before} calling this function (but after that the destructor of the subclass has run), therefore making the OpenGL context current in this function happens too late for their safe disposal.
See also
makeCurrent

Definition at line 1157 of file qopenglwidget.cpp.

References d.

Member Function Documentation

◆ aboutToCompose

void QOpenGLWidget::aboutToCompose ( )
signal

This signal is emitted when the widget's top-level window is about to begin composing the textures of its QOpenGLWidget children and the other widgets.

◆ aboutToResize

void QOpenGLWidget::aboutToResize ( )
signal

This signal is emitted when the widget's size is changed and therefore the framebuffer object is going to be recreated.

◆ context()

QOpenGLContext * QOpenGLWidget::context ( ) const
Returns
The QOpenGLContext used by this widget or 0 if not yet initialized.
Note
The context and the framebuffer object used by the widget changes when reparenting the widget via setParent().
See also
QOpenGLContext::setShareContext(), defaultFramebufferObject()

Definition at line 1365 of file qopenglwidget.cpp.

References d.

◆ currentTargetBuffer()

QOpenGLWidget::TargetBuffer QOpenGLWidget::currentTargetBuffer ( ) const

Returns the currently active target buffer.

This will be the left buffer by default, the right buffer is only used when \l QSurfaceFormat::StereoBuffers is enabled. When stereoscopic rendering is enabled, this can be queried in paintGL() to know what buffer is currently in use. paintGL() will be called twice, once for each target.

Since
6.5
See also
paintGL()

Definition at line 1579 of file qopenglwidget.cpp.

References d.

◆ defaultFramebufferObject() [1/2]

GLuint QOpenGLWidget::defaultFramebufferObject ( ) const
Returns
The framebuffer object handle or 0 if not yet initialized.
Note
The framebuffer object belongs to the context returned by context() and may not be accessible from other contexts.
The context and the framebuffer object used by the widget changes when reparenting the widget via setParent(). In addition, the framebuffer object changes on each resize.
See also
context()

Definition at line 1383 of file qopenglwidget.cpp.

References d, and LeftBuffer.

◆ defaultFramebufferObject() [2/2]

GLuint QOpenGLWidget::defaultFramebufferObject ( TargetBuffer targetBuffer) const
Returns
The framebuffer object handle of the specified target buffer or 0 if not yet initialized.

Calling this overload only makes sense if \l QSurfaceFormat::StereoBuffers is enabled and supported by the hardware. If not, this method will return the default buffer.

Note
The framebuffer object belongs to the context returned by context() and may not be accessible from other contexts. The context and the framebuffer object used by the widget changes when reparenting the widget via setParent(). In addition, the framebuffer object changes on each resize.
Since
6.5
See also
context()

Definition at line 1405 of file qopenglwidget.cpp.

References d.

◆ doneCurrent()

void QOpenGLWidget::doneCurrent ( )

Releases the context.

It is not necessary to call this function in most cases, since the widget will make sure the context is bound and released properly when invoking paintGL().

Definition at line 1348 of file qopenglwidget.cpp.

References d.

◆ event()

bool QOpenGLWidget::event ( QEvent * e)
overrideprotectedvirtual

\reimp

Reimplemented from QObject.

Definition at line 1696 of file qopenglwidget.cpp.

References Qt::AA_ShareOpenGLContexts, d, QPaintDevice::devicePixelRatio(), QEvent::DevicePixelRatioChange, QWidget::event(), QWidget::isHidden(), Q_FALLTHROUGH, QEvent::Show, QWidget::size, QCoreApplication::testAttribute(), QEvent::type(), QWidget::window(), QEvent::WindowAboutToChangeInternal, QEvent::WindowChangeInternal, and QWidget::windowHandle().

+ Here is the call graph for this function:

◆ format()

QSurfaceFormat QOpenGLWidget::format ( ) const

Returns the context and surface format used by this widget and its toplevel window.

After the widget and its toplevel have both been created, resized and shown, this function will return the actual format of the context. This may differ from the requested format if the request could not be fulfilled by the platform. It is also possible to get larger color buffer sizes than requested.

When the widget's window and the related OpenGL resources are not yet initialized, the return value is the format that has been set via setFormat().

See also
setFormat(), context()

Definition at line 1233 of file qopenglwidget.cpp.

References d.

Referenced by makeCurrent(), and setFormat().

+ Here is the caller graph for this function:

◆ frameSwapped

void QOpenGLWidget::frameSwapped ( )
signal

This signal is emitted after the widget's top-level window has finished composition and returned from its potentially blocking QOpenGLContext::swapBuffers() call.

◆ grabFramebuffer() [1/2]

QImage QOpenGLWidget::grabFramebuffer ( )

Renders and returns a 32-bit RGB image of the framebuffer.

Note
This is a potentially expensive operation because it relies on glReadPixels() to read back the pixels. This may be slow and can stall the GPU pipeline.

Definition at line 1546 of file qopenglwidget.cpp.

References d.

◆ grabFramebuffer() [2/2]

QImage QOpenGLWidget::grabFramebuffer ( TargetBuffer targetBuffer)

Renders and returns a 32-bit RGB image of the framebuffer of the specified target buffer.

This overload only makes sense to call when \l QSurfaceFormat::StereoBuffers is enabled. Grabbing the framebuffer of the right target buffer will return the default image if stereoscopic rendering is disabled or if not supported by the hardware.

Note
This is a potentially expensive operation because it relies on glReadPixels() to read back the pixels. This may be slow and can stall the GPU pipeline.
Since
6.5

Definition at line 1563 of file qopenglwidget.cpp.

References d.

◆ initializeGL()

void QOpenGLWidget::initializeGL ( )
protectedvirtual

This virtual function is called once before the first call to paintGL() or resizeGL().

Reimplement it in a subclass.

This function should set up any required OpenGL resources.

There is no need to call makeCurrent() because this has already been done when this function is called. Note however that the framebuffer is not yet available at this stage, so avoid issuing draw calls from here. Defer such calls to paintGL() instead.

See also
paintGL(), resizeGL()

Reimplemented in MyGLWidget, and MyGLWidget.

Definition at line 1424 of file qopenglwidget.cpp.

◆ isValid()

bool QOpenGLWidget::isValid ( ) const
Returns
true if the widget and OpenGL resources, like the context, have been successfully initialized. Note that the return value is always false until the widget is shown.

Definition at line 1285 of file qopenglwidget.cpp.

References d.

◆ makeCurrent() [1/2]

void QOpenGLWidget::makeCurrent ( )

Prepares for rendering OpenGL content for this widget by making the corresponding context current and binding the framebuffer object in that context.

It is not necessary to call this function in most cases, because it is called automatically before invoking paintGL().

See also
context(), paintGL(), doneCurrent()

Definition at line 1301 of file qopenglwidget.cpp.

References d.

Referenced by resizeEvent().

+ Here is the caller graph for this function:

◆ makeCurrent() [2/2]

void QOpenGLWidget::makeCurrent ( TargetBuffer targetBuffer)

Prepares for rendering OpenGL content for this widget by making the context for the passed in buffer current and binding the framebuffer object in that context.

Note
This only makes sense to call when stereoscopic rendering is enabled. Nothing will happen if the right buffer is requested when it's disabled.

It is not necessary to call this function in most cases, because it is called automatically before invoking paintGL().

Since
6.5
See also
context(), paintGL(), doneCurrent()

Definition at line 1328 of file qopenglwidget.cpp.

References d, format(), and RightBuffer.

+ Here is the call graph for this function:

◆ metric()

◆ paintEngine()

QPaintEngine * QOpenGLWidget::paintEngine ( ) const
overrideprotectedvirtual

\reimp

Implements QPaintDevice.

Definition at line 1664 of file qopenglwidget.cpp.

References d, and QWidget::paintEngine().

+ Here is the call graph for this function:

◆ paintEvent()

void QOpenGLWidget::paintEvent ( QPaintEvent * e)
overrideprotectedvirtual

Handles paint events.

Calling QWidget::update() will lead to sending a paint event e, and thus invoking this function. (NB this is asynchronous and will happen at some point after returning from update()). This function will then, after some preparation, call the virtual paintGL() to update the contents of the QOpenGLWidget's framebuffer. The widget's top-level window will then composite the framebuffer's texture with the rest of the window.

Reimplemented from QWidget.

Definition at line 1527 of file qopenglwidget.cpp.

References d, Q_UNUSED, and QWidget::updatesEnabled.

◆ paintGL()

void QOpenGLWidget::paintGL ( )
protectedvirtual

This virtual function is called whenever the widget needs to be painted.

Reimplement it in a subclass.

There is no need to call makeCurrent() because this has already been done when this function is called.

Before invoking this function, the context and the framebuffer are bound, and the viewport is set up by a call to glViewport(). No other state is set and no clearing or drawing is performed by the framework.

The default implementation performs a glClear(). Subclasses are not expected to invoke the base class implementation and should perform clearing on their own.

Note
To ensure portability, do not expect that state set in initializeGL() persists. Rather, set all necessary state, for example, by calling glEnable(), in paintGL(). This is because some platforms, such as WebAssembly with WebGL, may have limitations on OpenGL contexts in some situations, which can lead to using the context used with the QOpenGLWidget for other purposes as well.

When \l QSurfaceFormat::StereoBuffers is enabled, this function will be called twice - once for each buffer. Query what buffer is currently bound by calling currentTargetBuffer().

Note
The framebuffer of each target will be drawn to even when stereoscopic rendering is not supported by the hardware. Only the left buffer will actually be visible in the window.
See also
initializeGL(), resizeGL(), currentTargetBuffer()

Reimplemented in MyGLWidget.

Definition at line 1478 of file qopenglwidget.cpp.

References d.

◆ redirected()

QPaintDevice * QOpenGLWidget::redirected ( QPoint * p) const
overrideprotectedvirtual

\reimp

Reimplemented from QPaintDevice.

Definition at line 1652 of file qopenglwidget.cpp.

References d, and QWidget::redirected().

+ Here is the call graph for this function:

◆ resized

void QOpenGLWidget::resized ( )
signal

This signal is emitted right after the framebuffer object has been recreated due to resizing the widget.

◆ resizeEvent()

void QOpenGLWidget::resizeEvent ( QResizeEvent * e)
overrideprotectedvirtual

Handles resize events that are passed in the e event parameter.

Calls the virtual function resizeGL().

Note
Avoid overriding this function in derived classes. If that is not feasible, make sure that QOpenGLWidget's implementation is invoked too. Otherwise the underlying framebuffer object and related resources will not get resized properly and will lead to incorrect rendering.

Reimplemented from QWidget.

Definition at line 1494 of file qopenglwidget.cpp.

References d, QWidget::height, QSize::isEmpty(), makeCurrent(), resizeGL(), QResizeEvent::size(), QWidget::size, and QWidget::width.

+ Here is the call graph for this function:

◆ resizeGL()

void QOpenGLWidget::resizeGL ( int w,
int h )
protectedvirtual

This virtual function is called whenever the widget has been resized.

Reimplement it in a subclass. The new size is passed in w and h.

There is no need to call makeCurrent() because this has already been done when this function is called. Additionally, the framebuffer is also bound.

See also
initializeGL(), paintGL()

Reimplemented in MyGLWidget.

Definition at line 1439 of file qopenglwidget.cpp.

References Q_UNUSED.

Referenced by resizeEvent().

+ Here is the caller graph for this function:

◆ setFormat()

void QOpenGLWidget::setFormat ( const QSurfaceFormat & format)

Sets the requested surface format.

When the format is not explicitly set via this function, the format returned by QSurfaceFormat::defaultFormat() will be used. This means that when having multiple OpenGL widgets, individual calls to this function can be replaced by one single call to QSurfaceFormat::setDefaultFormat() before creating the first widget.

Note
Requesting an alpha buffer via this function will not lead to the desired results when the intention is to make other widgets beneath visible. Instead, use Qt::WA_AlwaysStackOnTop to enable semi-transparent QOpenGLWidget instances with other widgets visible underneath. Keep in mind however that this breaks the stacking order, so it will no longer be possible to have other widgets on top of the QOpenGLWidget.
See also
format(), Qt::WA_AlwaysStackOnTop, QSurfaceFormat::setDefaultFormat()

Definition at line 1206 of file qopenglwidget.cpp.

References d, format(), Q_UNLIKELY, and qWarning.

Referenced by viewScene().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setTextureFormat()

void QOpenGLWidget::setTextureFormat ( GLenum texFormat)

Sets a custom internal texture format of texFormat.

When working with sRGB framebuffers, it will be necessary to specify a format like {GL_SRGB8_ALPHA8}. This can be achieved by calling this function.

Note
This function has no effect if called after the widget has already been shown and thus it performed initialization.
This function will typically have to be used in combination with a QSurfaceFormat::setDefaultFormat() call that sets the color space to QSurfaceFormat::sRGBColorSpace.
Since
5.10

Definition at line 1255 of file qopenglwidget.cpp.

References d, Q_UNLIKELY, and qWarning.

◆ setUpdateBehavior()

void QOpenGLWidget::setUpdateBehavior ( UpdateBehavior updateBehavior)

Sets this widget's update behavior to updateBehavior.

Since
5.5

Definition at line 1173 of file qopenglwidget.cpp.

References d, and updateBehavior().

+ Here is the call graph for this function:

◆ textureFormat()

GLenum QOpenGLWidget::textureFormat ( ) const
Returns
the active internal texture format if the widget has already initialized, the requested format if one was set but the widget has not yet been made visible, or \nullptr if setTextureFormat() was not called and the widget has not yet been made visible.
Since
5.10

Definition at line 1274 of file qopenglwidget.cpp.

References d.

◆ updateBehavior()

QOpenGLWidget::UpdateBehavior QOpenGLWidget::updateBehavior ( ) const
Returns
the update behavior of the widget.
Since
5.5

Definition at line 1183 of file qopenglwidget.cpp.

References d.

Referenced by setUpdateBehavior().

+ Here is the caller graph for this function:

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