QGraphicsVideoItem Class
QGraphicsVideoItem 类提供了一个图形项,用于显示由QMediaPlayer 或QCamera 生成的视频。更多内容...
| 头文件: | #include <qgraphicsvideoitem.h> |
| 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 : 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() const。
返回一个 int 类型值,表示视频项的类型。
© 2026 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.