QWidget获取控件尺寸与预期不一致的问题

最近项目中两次遇到这个问题。背景是视频抽帧显示,方案时在QFrame上放置QWidget,QFrame水平布局,QWiget水平和垂直属性为Preffered。

第一次:点击按钮打开视频,动态创建窗口。视频显示的时候,按照QFrame的大小设定了QVideoWidget的大小,但实际视频帧显示的时候界面时变形的。添加代码vedioWidget->show()后,视频显示正常。

QWidget获取控件尺寸与预期不一致的问题_第1张图片

第二次:在构造函数中,动态创建窗口。同样的代码,添加了代码vedioWidget->show()后,视频仍然变形。原因分析:主窗体构建和显示在main.cpp中执行,构造函数执行时,主窗体还没有执行show()操作,因此QFrame的大小并不是完成布局后的尺寸,vedioWidget的尺寸也不是预期得尺寸。

总结,要准确获得主窗体子控件的尺寸,应该在主窗体show()执行完毕后,show()执行后界面布局才能起作用

你可能感兴趣的:(音视频开发,QT,c++,qt,c++)