我想查询小部件的宽度以执行一些自定义布局管理。不幸的是,无论小部件实际有多大或多小,下面的代码都会返回640
int myWidth = this->rect().size().width(); // "this" is my class derived from QWidget
// myWidth is set to 640
编辑:
int myWidth = this->width()
返回相同的640
答案 0 :(得分:5)
重写了进行特殊布局管理的正确位置resizeEvent
。此时,窗口小部件的大小将被确定(通常由父窗口小部件的布局决定,基于size hint和size policy)。它确保在第一次显示小部件之前被调用。请记住也要调用超类resizeEvent
,至少如果您在布局中有子窗口小部件。