Qt制作一个qmainwindow,其中包含显示图像的videowidget
我正在使用Qt制作一个qmainwindow,其中包含显示图像的videowidget,qt,video,window,phonon,Qt,Video,Window,Phonon,我正在使用编写应用程序 我想要两扇窗户。一个是带有视频控件的主窗口 另一个有视频本身。它将显示在另一个监视器中-全屏与否 如何使视频窗口(可以移动或调整大小)与视频在一起 当不播放任何视频时,视频窗口应该显示一个图像。最后,我没有使用QStackedWidget,我扩展了Phonon::VideoWidget并制作了这个类 以下是cpp: MyVideoWidget::MyVideoWidget(QWidget *parent) : Phonon::VideoWidget(parent) {
编写应用程序
我想要两扇窗户。一个是带有视频控件的主窗口
另一个有视频本身。它将显示在另一个监视器中-全屏与否
如何使视频窗口(可以移动或调整大小)与视频在一起
当不播放任何视频时,视频窗口应该显示一个图像。最后,我没有使用QStackedWidget,我扩展了Phonon::VideoWidget并制作了这个类 以下是cpp:
MyVideoWidget::MyVideoWidget(QWidget *parent) : Phonon::VideoWidget(parent)
{
label = new QLabel(this);
label->setAutoFillBackground(true);
label->setBackgroundRole(QPalette::Light);
label->setScaledContents(true);
}
void MyVideoWidget::mouseDoubleClickEvent(QMouseEvent* event)
{
if(!this->isFullScreen())
this->enterFullScreen();
else
this->setFullScreen(false);
}
void MyVideoWidget::keyPressEvent(QKeyEvent* event)
{
if(event->key() == Qt::Key_Escape)
{
if(!this->isFullScreen())
this->enterFullScreen();
else
this->setFullScreen(false);
}
}
void MyVideoWidget::enterImageMode(QString imagePath)
{
QPixmap pmap;
pmap.fill(QColor(255, 255, 255));
if(!pmap.load(imagePath))
{
label->setText("Erro ao carregar imagem: "+imagePath);
if(!label->isVisible())
label->show();
return;
}
label->setPixmap(pmap);
if(!label->isVisible())
label->show();
repaint();
}
void MyVideoWidget::enterVideoMode()
{
label->hide();
}
void MyVideoWidget::resizeEvent(QResizeEvent* event)
{
Phonon::VideoWidget::resizeEvent(event);
label->setGeometry(this->geometry());
repaint();
}
MyVideoWidget::~MyVideoWidget()
{
}
您是否编译了视频小部件示例?您是否在问如何仅在视频的单独窗口中使用控件实现相同的功能?不,我用的是#包括我的SDKalso随附的这门课,所以我问不玩视频时如何在里面显示图像我对声子不太了解;我的印象是,这是一个废弃的旧API。但是关于在布局中有一个插槽可以轻松地在一个小部件中切换到另一个小部件的能力,请看QStackedWidget。它可以让你包含一个QImage和一个视频播放器,并在它们之间交换。谢谢我不知道QStackWidget,我认为它应该起作用。我会试试的