奇妙な問題があり、助けが必要です。状況は静かで簡単です: QMediaPlayer、QVideoWidget、およびいくつかのレイアウト (例: QVboxLayout ; まあ、それは実際には問題ではありません) があります。問題は、配置を指定してQVideoWidgetを追加したときです。ビデオが表示されず、ウィジェットの場所しかなく、ビデオのない空白の領域があります。また、アライメントを指定せずに追加しても問題ありません。コード例は次のとおりです。
Widget.h:
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = 0)
: QWidget(parent)
{
QVideoWidget *vw = new QVideoWidget();
QVBoxLayout *vb = new QVBoxLayout();
vb->addWidget(vw, 0/*, Qt::AlignCenter*/); /// << here's the problem block
this->setLayout(vb);
QMediaPlayer *pl = new QMediaPlayer();
pl->setMedia(QMediaContent(
QUrl::fromLocalFile("D:/1.wmv")));
pl->setVideoOutput(vw);
pl->play();
this->resize(600, 480);
}
~Widget() {}
};
助言がありますか?前もって感謝します。
更新:
興味深いことが見つかりました -中央揃えが「オフ」のビデオウィジェットの「qDebugging」 geometry()は次のようになります: QRect(11,11 579x459) しかし、中央に揃えようとすると、次のようになります: QRect( 300,240 0x0)
左揃え: QRect(11,11 0x456)
この問題が発生する理由と、この問題を解決する正しい方法はわかりませんが、QVideoWidgetをQGraphicsScene-QGraphicsView-QGraphicsVideoItemチェーンで変更しても繰り返されます。