今天遇到一个继承自QWidget的控件,怎么都设置不成尺寸大小,设置到预期大小时其子部件就显示变形。倒腾半天不得结果,最后发现原因竟是:
相信很多人也都注意到了,由Qt Creator设计器里拖入的QHBoxLayout控件默认四周空白是零,自然而然的认为由代码创建的也会设置同样的默认值,所以根本没有往这个方向上想。总认为是这个派生类控件及其子部件的问题,真是白花费了不少时间。
因为四周边白(默认9)的存在,导致设置控件尺寸过小时,子部件显示变形或者容器部件被撑大。解决办法很简单,调用一下设置边白函数即可:
QHBoxLayout *layout = new QHBoxLayout(this); layout->setContentsMargins(0, 0 , 0, 0);