繁体   English   中英

QVideoWidget对齐后不显示任何内容

[英]QVideoWidget doesn't show anything when aligned

我遇到了一个奇怪的问题,需要一些帮助。 情况很简单:我有一个QMediaPlayerQVideoWidget和一些布局(例如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() {}
};

有什么建议么? 提前致谢。

UPD:

发现了一件有趣的事情-如果视频小部件的“ qDebugging” geometry()中心对齐为“ off ”,它看起来像这样: QRect(11,11 579x459)但是如果我尝试将它对齐到中心,它看起来像这样: QRect( 300,240 0x0)

AlignLeft: QRect(11,11 0x456)

不知道为什么会这样,以及解决此问题的正确方法是什么,但是即使我使用QGraphicsScene-QGraphicsView-QGraphicsVideoItem链更改了QVideoWidget ,它也会重复执行。

好吧,在stackoverflow上(抱歉,错过了确切的链接),我发现建议不要在布局中的小部件上使用对齐方式,而是最好在必须对齐的小部件中使用对齐方式。 这就是为什么我关闭布局的对齐方式并将居中控件的内容居中的原因,这些控件已插入到布局中。 看起来像骇客,但确实有效。 谢谢您的帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM