仅显示QT QMediaPlayer视频的部分区域(裁剪)

时间:2016-05-01 08:36:17

标签: qt pyqt

我只想展示正在播放QMediaPlayer视频的部分区域,例如,如果它是1280x720视频,我可能只希望在QPoint(300,300)中间显示一些区域,其大小为{ {1}}。

我已尝试将QSize(200,200)与setOffset一起使用并应用QGraphicsVideoItem(),但QTransform.translate似乎无效并且变换setOffset有效但rotate不起作用好像什么都做。

我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

好的结果是你可以通过将它放在父QWidget中并设置那个小部件几何来基本上裁剪任何东西。

通过设置x和y负数,您可以将左上角推到渲染区域外,通过设置宽度和高度,您可以设置显示的数量,基本上允许您显示QWidgets内容的任何特定部分。

qw = QWidget()
qw.setParent(self)
qw.setGeometry(-150,-150,500,500)

videoWidget = QVideoWidget()
videoWidget.setParent(qw)
videoWidget.show()

mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
mediaPlayer.setVideoOutput(videoWidget)

然后你可以将QWidget嵌套在另一个QWidget中,以便能够像往常一样将它放在屏幕上的任何位置。