- Qt 5.15
- Qt Multimedia
- C++ Classes
- QGraphicsVideoItem
- Qt 5.15.17 Reference Documentation

# QGraphicsVideoItem Class

The QGraphicsVideoItem class provides a graphics item which display video produced by a QMediaObject. More...

Header: | #include <QGraphicsVideoItem>
qmake: | QT += multimediawidgets
Inherits: | QMediaBindableInterface and

- List of all members, including inherited members

## Properties

- aspectRatioMode : Qt::AspectRatioMode
- mediaObject : QMediaObject* const
- nativeSize : const QSizeF

- offset : QPointF
- size : QSizeF
- videoSurface : QAbstractVideoSurface* const

## Public Functions

| QGraphicsVideoItem(QGraphicsItem *parent = nullptr)
virtual | ~QGraphicsVideoItem()
Qt::AspectRatioMode | aspectRatioMode() const
QSizeF | nativeSize() const
QPointF | offset() const
void | setAspectRatioMode(Qt::AspectRatioMode mode)
void | setOffset(const QPointF &offset)
void | setSize(const QSizeF &size)
QSizeF | size() const
QAbstractVideoSurface * | videoSurface() const

## Reimplemented Public Functions

virtual QRectF | boundingRect() const override
virtual QMediaObject * | mediaObject() const override
virtual void | paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override

## Signals

void | nativeSizeChanged(const QSizeF &size)

## Detailed Description

Attaching a QGraphicsVideoItem to a QMediaObject allows it to display the video or image output of that media object. A QGraphicsVideoItem is attached to a media object by passing a pointer to the QMediaObject to the setMediaObject() function.

     player = new QMediaPlayer(this);

     QGraphicsVideoItem *item = new QGraphicsVideoItem;
     player->setVideoOutput(item);
     graphicsView->scene()->addItem(item);
     graphicsView->show();

     player->setMedia(QUrl("http://example.com/myclip4.ogv"));
     player->play();

Note: Only a single display output can be attached to a media object at one time.

See also QMediaObject, QMediaPlayer, and QVideoWidget.

## Property Documentation

### aspectRatioMode : Qt::AspectRatioMode

how a video is scaled to fit the graphics item's size.

Access functions:

Qt::AspectRatioMode | aspectRatioMode() const
void | setAspectRatioMode(Qt::AspectRatioMode mode)

### mediaObject : QMediaObject* const

This property holds the media object which provides the video displayed by a graphics item.

Access functions:

virtual QMediaObject * | mediaObject() const override

### nativeSize : const QSizeF

This property holds the native size of the video.

Access functions:

QSizeF | nativeSize() const

Notifier signal:

void | nativeSizeChanged(const QSizeF &size)

### offset : QPointF

This property holds the video item's offset.

QGraphicsVideoItem will draw video using the offset for its top left corner.

Access functions:

QPointF | offset() const
void | setOffset(const QPointF &offset)

### size : QSizeF

This property holds the video item's size.

QGraphicsVideoItem will draw video scaled to fit size according to its fillMode.

Access functions:

QSizeF | size() const
void | setSize(const QSizeF &size)

### videoSurface : QAbstractVideoSurface* const

Returns the underlying video surface that can render video frames to the current item. This property is never `nullptr`. Example of how to render video frames to QGraphicsVideoItem:

     QGraphicsVideoItem *item = new QGraphicsVideoItem;
     graphicsView->scene()->addItem(item);
     graphicsView->show();
     QImage img = QImage("images/qt-logo.png").convertToFormat(QImage::Format_ARGB32);
     QVideoSurfaceFormat format(img.size(), QVideoFrame::Format_ARGB32);
     item->videoSurface()->start(format);
     item->videoSurface()->present(img);

This property was introduced in Qt 5.15.

Access functions:

QAbstractVideoSurface * | videoSurface() const

See also QMediaPlayer::setVideoOutput.

## Member Function Documentation

### QGraphicsVideoItem::QGraphicsVideoItem(QGraphicsItem *parent = nullptr)

Constructs a graphics item that displays video.

The parent is passed to QGraphicsItem.

### `[signal]` void QGraphicsVideoItem::nativeSizeChanged(const QSizeF &size)

Signals that the native size of the video has changed.

Note: Notifier signal for property nativeSize.

### `[virtual]` QGraphicsVideoItem::~QGraphicsVideoItem()

Destroys a video graphics item.

### `[override virtual]` QRectF QGraphicsVideoItem::boundingRect() const

### `[override virtual]` void QGraphicsVideoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)