QGraphicsVideoItem Class

The QGraphicsVideoItem class provides a graphics item which display video produced by a QMediaPlayer or QCamera. More...

Header: #include <QGraphicsVideoItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS MultimediaWidgets)
target_link_libraries(mytarget PRIVATE Qt6::MultimediaWidgets)
qmake: QT += multimediawidgets
Inherits: QGraphicsObject

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
QVideoSink *videoSink() const

Reimplemented Public Functions

virtual QRectF boundingRect() const override
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
virtual int type() const override

Signals

void nativeSizeChanged(const QSizeF &size)

Detailed Description

Attaching a QGraphicsVideoItem to a QMediaPlayer or QCamera allows it to display the video or image output of that media object.

 player = new QMediaPlayer(this);

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

 player->setSource(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 QMediaPlayer, QVideoWidget, and QCamera.

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)

[read-only] 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)

[read-only] videoSink : QVideoSink* const

Returns the underlying video sink 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);
 item->videoSink()->setVideoFrame(QVideoFrame(img));

Access functions:

QVideoSink *videoSink() const[see note below]

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

See also QMediaPlayer::setVideoOutput.

Member Function Documentation

[explicit] QGraphicsVideoItem::QGraphicsVideoItem(QGraphicsItem *parent = nullptr)

Constructs a graphics item that displays video.

The parent is passed to QGraphicsItem.

[virtual noexcept] 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).

[override virtual] int QGraphicsVideoItem::type() const

Reimplements: QGraphicsItem::type() const.

Returns an int representing the type of the video item.