QWidget报告错误的宽度值

S B*_*S B 3 qt qwidget

我想查询小部件的宽度来执行一些自定义布局管理.不幸的是,无论小部件实际有多大或多小,以下代码都会返回640

int myWidth = this->rect().size().width();  // "this" is my class derived from QWidget
// myWidth is set to 640
Run Code Online (Sandbox Code Playgroud)

编辑:

int myWidth = this->width() 返回相同的640

hyd*_*yde 5

覆盖了进行特殊布局管理的正确位置resizeEvent.此时,小部件的大小被确定(通常由父小部件的布局,基于大小提示大小策略).它确保在第一次显示小部件之前被调用.记得也要调用超类resizeEvent,至少如果你有布局的子小部件.