我有个奇怪的问题,需要帮助。情况很平静,很容易:我有一个QMediaPlayer,QVideoWidget和一些布局(例如。QVboxLayout;嗯,这并不重要)。问题是,当我添加指定对齐方式的QVideoWidget时,没有显示视频,只有一个小部件的位置,一个没有视频的空白区域。如果我在不指定对齐的情况下添加它,就没有问题了。下面是代码示例:
寡妇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“几何学()与中心对齐"off”,它看起来是这样的:QRect(11,11579x459),但是如果我试图将它与中心对齐,它看起来如下: QRect(300,240 0x0)
AlignLeft: QRect(11,110x456)
不知道为什么会发生这种情况,解决这个问题的正确方法是什么,但是即使我用链改变了QVideoWidget,它也会重复。
发布于 2015-04-27 07:52:39
在这里,在堆栈溢出(抱歉,错过了确切的链接)上,我发现建议不要在布局中对小部件使用对齐,相反,最好在必须对齐的小部件内部使用对齐。这就是为什么我关闭了布局的对齐,并将插入到布局中的小部件的内容居中。看上去像是黑客,但真的很管用。谢谢你的帮助。
https://stackoverflow.com/questions/29728172
复制相似问题