QGraphicsVideoItem Class
QGraphicsVideoItem 类提供了一个图形项目,用于显示由QMediaPlayer 或QCamera 制作的视频。
Header: | #include <QGraphicsVideoItem> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS MultimediaWidgets) target_link_libraries(mytarget PRIVATE Qt6::MultimediaWidgets) |
qmake: | QT += multimediawidgets |
继承: | QGraphicsObject |
属性
|
公共函数
QGraphicsVideoItem(QGraphicsItem *parent = nullptr) | |
virtual | ~QGraphicsVideoItem() override |
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 |
重新实现的公共函数
virtual QRectF | boundingRect() const override |
virtual void | paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override |
virtual int | type() const override |
信号
void | nativeSizeChanged(const QSizeF &size) |
详细说明
将 QGraphicsVideoItem 附加到QMediaPlayer 或QCamera 后,就可以显示该媒体对象的视频或图像输出。
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();
注意:一个媒体对象一次只能附加一个显示输出。
另请参阅 QMediaPlayer 、QVideoWidget 和QCamera 。
属性文档
aspectRatioMode : Qt::AspectRatioMode
如何缩放视频以适应图形项目的大小。
访问功能:
Qt::AspectRatioMode | aspectRatioMode() const |
void | setAspectRatioMode(Qt::AspectRatioMode mode) |
[read-only]
nativeSize : const QSizeF
此属性用于保存视频的原始大小。
访问功能:
QSizeF | nativeSize() const |
通知信号:
void | nativeSizeChanged(const QSizeF &size) |
offset : QPointF
此属性用于保存视频项的偏移量。
QGraphicsVideoItem 在绘制视频时,将使用其左上角的偏移量。
访问功能:
QPointF | offset() const |
void | setOffset(const QPointF &offset) |
size : QSizeF
此属性用于保存视频项目的大小。
QGraphicsVideoItem 在绘制视频时,将根据其 fillMode 按比例调整大小。
访问功能:
QSizeF | size() const |
void | setSize(const QSizeF &size) |
[read-only]
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 | [see note below] |
注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE 。
另请参阅 QMediaPlayer::setVideoOutput 。
成员函数文档
[explicit]
QGraphicsVideoItem::QGraphicsVideoItem(QGraphicsItem *parent = nullptr)
构造一个显示视频的图形项目。
parent 传递给QGraphicsItem 。
[override virtual noexcept]
QGraphicsVideoItem::~QGraphicsVideoItem()
销毁一个视频图形项目。
[override virtual]
QRectF QGraphicsVideoItem::boundingRect() const
重实现:QGraphicsItem::boundingRect() const.
[override virtual]
void QGraphicsVideoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr)
重实现:QGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)。
[override virtual]
int QGraphicsVideoItem::type() const
重实现:QGraphicsItem::type() 常量。
返回代表视频项目类型的 int。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.