QGraphicsVideoItem Class

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

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

Properties

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

Reimplements: QGraphicsItem::boundingRect() const.

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

Reimplements: QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget).