0

我想在我的 .ui 表单文件的 qtabwidget 内添加一个视频播放器。当程序运行时(Windows 8),程序窗口是一个小白框(不是我的 .ui 表单),视频播放(你可以听到)。另外,如果我注释掉“ui->Information->addTab(videoWidget, “video”);”之后的所有内容 程序的 UI 加载正常,新选项卡创建为“视频”,但是没有任何效果,因为 mediaPlayer 代码被注释掉了。这是媒体小部件的代码:

mainwin.h

private:
    QMediaPlayer * mediaPlayer;

主win.cpp

ui->setupUi(this);
mediaPlayer = new QMediaPlayer();
QVideoWidget *videoWidget = new QVideoWidget();
ui->Information->addTab(videoWidget, "video");
mediaPlayer->setVideoOutput(videoWidget);
mediaPlayer->setMedia(QUrl("link"));
mediaPlayer->play();

有人可以帮忙吗?谢谢!

编辑:查看来自 qt 的示例,我在创建窗口时注意到“mediaPlayer(0, QMediaPlayer::VideoSurface)”,如果我这样做,我会得到:

Project::Project(QWidget *parent) :
QMainWindow(parent),
mediaPlayer(0, QMediaPlayer::VideoSurface),
ui(new Ui::Project)
{
ui->setupUi(this);

这会导致一些错误,“错误:表达式列表在 mem-initializer [-fpermissive] mediaPlayer(0, QMediaPlayer::VideoSurface) 中被视为复合表达式”,“警告:逗号运算符的左操作数无效 [-Wunused- value]”和“错误:在初始化时无法将 'QMediaPlayer::Flag' 转换为 'QMediaPlayer*'”。

4

1 回答 1

0

在我的 QT 5.5.0 项目中嵌入完整的 QT 媒体播放器示例后,我遇到了同样的问题。开始播放视频后,左上角会出现一个白框。

我注意到播放器实际上会使我的应用程序工具栏(部分)变白,但如果工具栏被隐藏,它会添加白色框。

由于我不需要工具栏,我通过删除工具栏而不是隐藏它来解决这个问题。在 QT 设计器中,右键单击工具栏,然后单击“删除工具栏”。

于 2015-09-01T16:52:13.193 回答