示例:
之类加入要设置一个水平布局管理器的两个item的比例,1:5 水平比例显示;
QHBoxLayout * pQHBoxLayout = (QHBoxLayout *)pcentralWidget->layout();
QPushButton * pQPushButton1 = new QPushButton( "btn1", this );
QPushButton * pQPushButton2 = new QPushButton( "btn2", this );
pQHBoxLayout->addWidget( pQPushButton1 );
pQHBoxLayout->addWidget( pQPushButton2 );
QSizePolicy QSizePolicy1;
QSizePolicy QSizePolicy2;
QSizePolicy1.setHorizontalStretch(1);
QSizePolicy2.setHorizontalStretch(5);
pQPushButton1->setSizePolicy( QSizePolicy1 );
pQPushButton2->setSizePolicy( QSizePolicy2 );
上述代码初看,没有什么问题,但是运行后没有想要达到的效果;
修改方式:
QHBoxLayout * pQHBoxLayout = (QHBoxLayout *)pcentralWidget->layout();
QPushButton * pQPushButton1 = new QPushButton( "btn1", this );
QPushButton * pQPushButton2 = new QPushButton( "btn2", this );
pQHBoxLayout->addWidget( pQPushButton1 );
pQHBoxLayout->addWidget( pQPushButton2 );
QSizePolicy QSizePolicy1 = pQPushButton1->sizePolicy();
QSizePolicy QSizePolicy2 = pQPushButton2->sizePolicy();
QSizePolicy1.setHorizontalStretch(1);
QSizePolicy2.setHorizontalStretch(5);
pQPushButton1->setSizePolicy( QSizePolicy1 );
pQPushButton2->setSizePolicy( QSizePolicy2 );
//注意:
从上述描述可以看出,设置指定的itme 因子,要保留没有设定的因子值;
当设置QSizePolicy QSizePolicy1; 所有的值没有保留,会使得设置后运行显示不对。