QT QMediaPlayer小部件导致小白窗口

时间:2014-02-08 22:58:56

标签: c++ qt video qmediaplayer

我想在我的.ui表单文件中的qtabwidget中添加一个videoplayer。当程序运行时(Windows 8),程序窗口是一个小白框(不是我的.ui形式)和视频播放(你可以听到它)。此外,如果我在“ui->信息 - > addTab(videoWidget,”视频“)之后注释掉所有内容;”程序的UI加载正常,新标签创建为“视频”,但是没有任何作用导致mediaPlayer代码被注释掉了。这是媒体小部件的代码:

mainwin.h

private:
    QMediaPlayer * mediaPlayer;

mainwin.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 *'。

1 个答案:

答案 0 :(得分:0)

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

我注意到玩家实际上会将我的应用程序工具栏(部分)设置为白色,但如果隐藏了工具栏,则会添加白色框。

由于我不需要工具栏,我通过删除工具栏来修复此问题 而不是隐藏它。在QT设计器中,右键单击工具栏中的“删除工具栏”。