目前,下面的代码正在显示视频输出。但是当我评论窗口(QWidget),setLayout(),show()和取消注释QGraphicsProxyWidget时,视频输出没有显示。请帮助。
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QGraphicsScene scene;
ml = new WidgetMarqueeLabel(this);
ml->setDirection(1);
ml->setSpeed(1);
ml->setAlignment(Qt::AlignBottom);
ml->setText(QString("%1").arg(xmlValue[2]));
ml->setFont(QFont("Arial", 15,30));
QGridLayout *layout= new QGridLayout;
video();
layout->addWidget(videoWidget,0,0);
layout->addWidget(videoWidget1,0,1);
layout->addWidget(ml,1,0,1,2);
layout->setColumnStretch(0,10);
layout->setColumnStretch(1,10);
QWidget *window= new QWidget;
window->setLayout(layout);
// When i remove this comment and use proxy,app not working
// QGraphicsProxyWidget* proxy = scene.addWidget(window);
// QGraphicsView view(&scene);
// view.setWindowTitle("QWidget");
// view.setFixedSize(800,900);
// view.show();
window->setLayout(layout);
window->resize(1500,400);
window->show();
}
//create new mediaplaylist, mediaplayer, Videowidget, playlist
void MainWindow::video()
{
QString RealVideo1=xmlValue[0];
playlist= new QMediaPlaylist();
player= new QMediaPlayer;
videoWidget = new QVideoWidget;
playlist->addMedia(QUrl::fromLocalFile("/opt/night.mp4"));
playlist->addMedia(QUrl::fromLocalFile("/opt/V7.mp4"));
playlist->addMedia(QUrl::fromLocalFile("/opt/hotgirl.mp4"));
playlist->addMedia(QUrl::fromLocalFile("/opt/bird.mp4"));
playlist->addMedia(QUrl::fromLocalFile("/opt/arrow.mp4"));
playlist->setPlaybackMode(QMediaPlaylist::Loop);
playlist->setCurrentIndex(1);
player->setPlaylist(playlist);
player->setVolume(100);
QString RealVideo2=xmlValue[1];
playlist1= new QMediaPlaylist();
playlist1->setPlaybackMode(QMediaPlaylist::Loop);
player1= new QMediaPlayer;
videoWidget1 = new QVideoWidget;
playlist1->addMedia(QUrl::fromLocalFile("/opt/abc.mp4"));
player1->setPlaylist(playlist1);
player1->setVolume(0);
player->setVideoOutput(videoWidget);
player1->setVideoOutput(videoWidget1);
playlist->setCurrentIndex(1);
playlist1->setCurrentIndex(1);
player->play();
player1->play();
}
MainWindow::~MainWindow()
{
delete ui;
}