QWidget报告错误的宽度值

时间:2013-02-18 19:17:25

标签: qt qwidget

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

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

编辑:

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

1 个答案:

答案 0 :(得分:5)

重写了进行特殊布局管理的正确位置resizeEvent。此时,窗口小部件的大小将被确定(通常由父窗口小部件的布局决定,基于size hintsize policy)。它确保在第一次显示小部件之前被调用。请记住也要调用超类resizeEvent,至少如果您在布局中有子窗口小部件。