QGraphicsVideoItem 类

QGraphicsVideoItem 类提供了一种图形项,可以显示由 QMediaPlayerQCamera 生成的视频。 更多...

头文件 #include <QGraphicsVideoItem>
CMakefind_package(Qt6 REQUIRED COMPONENTS MultimediaWidgets)
target_link_libraries(mytarget PRIVATE Qt6::MultimediaWidgets)
qmakeQT += multimediawidgets
继承 QGraphicsObject

属性

公有函数

QGraphicsVideoItem(QGraphicsItem *parent = nullptr)
virtual~QGraphicsVideoItem()
Qt::AspectRatioModeaspectRatioMode() const
QSizeFnativeSize() const
QPointFoffset() const
voidsetAspectRatioMode(Qt::AspectRatioMode mode)
voidsetOffset(const QPointF &offset)
voidsetSize(const QSizeF &size)
QSizeFsize() const
QVideoSink *videoSink() const

重写公有函数

virtual QRectFboundingRect() const override
virtual voidpaint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override
virtual inttype() const override

信号

voidnativeSizeChanged(const QSizeF &size)

详细描述

将 QGraphicsVideoItem 与 QMediaPlayerQCamera 关联,可以使其显示媒体对象的视频或图像输出。

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();

注意:一次只能将单个显示输出关联到媒体对象。

另请参阅QMediaPlayerQVideoWidgetQCamera

属性文档

aspectRatioMode : Qt::AspectRatioMode

如何将视频缩放到适合图形项目大小。

访问函数

Qt::AspectRatioModeaspectRatioMode() const
voidsetAspectRatioMode(Qt::AspectRatioMode mode)

[只读] nativeSize : const QSizeF

该属性保存视频的原生大小。

访问函数

QSizeFnativeSize() const

通知信号

voidnativeSizeChanged(const QSizeF &size)

偏移量 : QPointF

该属性保存视频项目的偏移量。

QGraphicsVideoItem将使用偏移值绘制视频项目的左上角。

访问函数

QPointF偏移量() const
voidsetOffset(const QPointF &offset)

大小 : QSizeF

该属性保存视频项目的大小。

QGraphicsVideoItem将根据其填充模式将视频按比例缩放以适合大小。

访问函数

QSizeF大小() const
voidsetSize(const QSizeF &size)

[只读] videoSink : QVideoSink* const

返回可以渲染视频帧到当前项的下层视频输出。该属性永不为nullptr。如何渲染到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));

访问函数

QVideoSink *videoSink() const[见以下注释]

注意:此函数可以通过元对象系统以及在QML中调用。见Q_INVOKABLE

另请参阅:QMediaPlayer::setVideoOutput

成员函数文档

[显式] QGraphicsVideoItem::QGraphicsVideoItem(QGraphicsItem *parent = nullptr)

构建一个显示视频的图形项。

parent传递给QGraphicsItem

[虚拟 noexcept] QGraphicsVideoItem::~QGraphicsVideoItem()

销毁一个视频图形项。

[覆盖虚拟] QRectF QGraphicsVideoItem::boundingRect() const

重新实现:QGraphicsItem::boundingRect

[覆盖虚拟] void QGraphicsVideoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)

重新实现:QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)。

[覆盖虚拟] int QGraphicsVideoItem::type() const

重新实现:QGraphicsItem::type

返回代表视频项类型的整数。

© 2024 Qt公司有限公司。此处包含的文档贡献均为各自所有者的版权。提供的文档根据自由软件基金会发布的GNU自由文档许可第1.3版进行许可。