Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 为视频添加标签_Qt_Qvideowidget - Fatal编程技术网

Qt 为视频添加标签

Qt 为视频添加标签,qt,qvideowidget,Qt,Qvideowidget,我必须写一个简单的视频播放器,可以显示一些字幕,链接或图片(如在YouTube上)在一定的时间。我不知道如何使用QVideoWidget显示任何内容。我找不到任何有用的课程来做这件事。你能给我一些建议吗 我是按你的方式做的,但在我加载任何视频后,QLabel消失了 player->setVideoOutput(vw); playlistView->setMaximumWidth(200); playlistView->setMinimumWidth(300); window

我必须写一个简单的视频播放器,可以显示一些字幕,链接或图片(如在YouTube上)在一定的时间。我不知道如何使用QVideoWidget显示任何内容。我找不到任何有用的课程来做这件事。你能给我一些建议吗

我是按你的方式做的,但在我加载任何视频后,QLabel消失了

player->setVideoOutput(vw);
playlistView->setMaximumWidth(200);
playlistView->setMinimumWidth(300);

window = new QWidget;

Playerlayout = new QGridLayout;

subtitleWidget = new QLabel;

subtitleWidget->setMaximumWidth(1000);
subtitleWidget->setMaximumHeight(100);
subtitleWidget->setStyleSheet("QLabel {background-color : red; color 
blue;}");

subtitleWidget->setAlignment(Qt::AlignCenter | Qt::AlignBottom);
subtitleWidget->setWordWrap(true);
subtitleWidget->setText("example subtitle");



Playerlayout->addWidget(vw,0,0);

Playerlayout->addWidget(subtitleWidget,0,0);

Playerlayout->addWidget(playlistView,0,1,1,2);

如果
QVideoWidget
不能直接提供您需要的内容,那么您可以随时设置覆盖

基本布局项层次结构类似于

QWidget
  layout
    QVideoWidget
    subtitle_widget
在这种情况下,布局可以是使用堆叠模式,也可以是同时使用
QVideoWidget
subtitle\u widget
占用相同单元格但z顺序正确的布局

使用
QGridLayout

auto *w = new QWidget;
auto *l = new QGridLayout(w);
auto *video_widget = new QVideoWidget;
auto *subtitle_widget = new QLabel;

/*
 * Subtitles will be shown at the bottom of the 'screen'
 * and centred horizontally.
 */
subtitle_widget->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
subtitle_widget->setWordWrap(true);

/*
 * Place both the video and subtitle widgets in cell (0, 0).
 */
l->addWidget(video_widget, 0, 0);
l->addWidget(subtitle_widget, 0, 0);
现在,只需在适当的时间调用
subtitle\u widget->setText(…)
即可显示字幕等


同样的方法可以很容易地扩展到覆盖其他类型的信息。

在文档中没有看到任何内容-显然,一个方向可以是在
qgraphicscene
中显示视频和字幕。谢谢:)这真的很有帮助。另一个问题是应用程序应该允许在具体形式(在本程序中)。没有真正了解它应该如何工作/这真的是一个单独的问题,但是,看看。是的,我考虑过srt,但我真的不知道如何在我的程序中处理它们好的,我按照你的方式做了。但现在我有一个问题,因为我创建了自己的VideoWidget,我不知道如何将它添加到我的主窗口。我无法使用setCentralWidget,因为我已经有一个包含按钮的中心小部件。有什么想法吗???@JacekDuraj如果这个答案解决了问题中提出的问题,你应该接受它。不要用与答案不直接相关的评论或后续问题来充实答案,而是单独提问。接受答案很重要,因为它既可以奖励解决问题的海报,也可以告知其他人问题已经解决。要将答案标记为已接受,请单击答案旁边的复选标记,将其从空心切换为绿色。