我想查询小部件的宽度以执行一些自定义布局管理。不幸的是,无论小部件实际有多大或多小,以下代码都会返回 640
int myWidth = this->rect().size().width(); // "this" is my class derived from QWidget
// myWidth is set to 640
EDIT:
int myWidth = this->width()
返回相同的 640
进行特殊布局管理的正确位置被覆盖resizeEvent http://qt-project.org/doc/qt-4.8/qwidget.html#resizeEvent。此时小部件的大小就决定了(通常由父小部件的布局决定,基于尺寸提示 http://qt-project.org/doc/qt-4.8/qwidget.html#sizeHint-prop and 尺寸政策 http://qt-project.org/doc/qt-4.8/qwidget.html#sizePolicy-prop)。它也保证在第一次显示小部件之前被调用。记得调用超类resizeEvent http://qt-project.org/doc/qt-4.8/qwidget.html#resizeEvent也是如此,至少如果布局中有子小部件的话。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)