0

を使用してアプリケーションを作成しています<Phonon/VideoWidget>

2つのウィンドウが欲しいのですが。1つはビデオのコントロールを備えたメインウィンドウで、もう1つはビデオ自体を備えています。別のモニターに表示されます。-フルスクリーンかどうか。

ビデオを中に入れて、移動またはサイズ変更可能なビデオウィンドウを作成するにはどうすればよいですか?

ビデオを再生していないときは、ビデオウィンドウに画像が表示されます。

4

1 に答える 1

0

結局、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() 
{

}
于 2012-05-11T01:37:22.047 に答える