を使用してアプリケーションを作成しています<Phonon/VideoWidget>
。
2つのウィンドウが欲しいのですが。1つはビデオのコントロールを備えたメインウィンドウで、もう1つはビデオ自体を備えています。別のモニターに表示されます。-フルスクリーンかどうか。
ビデオを中に入れて、移動またはサイズ変更可能なビデオウィンドウを作成するにはどうすればよいですか?
ビデオを再生していないときは、ビデオウィンドウに画像が表示されます。
結局、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()
{
}