怎么放大和缩小QWidget中的控件

如何放大和缩小QWidget中的控件?
小弟刚刚开始接触qt
目前正在做一个基于QWidget的GUI application,遇到个问题:
application 中有一个button,其功能是,点击后,放大Qwidget中所有的pushButton, lineEdit, checkBox的size至原来的1.5倍
尝试放在layout里,控制layout的size来实现但是失败了..放大layout的size后,button, lineEdit的size没变,它们只是间距变大了..

大家有什么好的方法么?

------解决方案--------------------
覆盖resizeEvent方法,然后对所有children widget调用resize?
------解决方案--------------------
方法一:
class YourWidget : public Widget(QPushButton or QCheckbox ...)
{
public :
....
 
void doubleSize() {
mWidth *= 2;
mHeight *= 2;
}

protected:
QSize sizeHint() const;

private :
int mWidth;
int mHeight;
};


QSize sizeHint() const {
return QSize( mWidth, mHeight );
}

layout 布局会根据其中各器件的 sizeHint() 函数返回的大小来计算其大小

方法二:
 使用GraphicsView , 然后继承GraphicsItem来写你的器件, 这个好像比较麻烦~~~ ^__^

------解决方案--------------------
设置你的所有的 Widget 的 sizePolicy 为 Expanding

然后只要改变窗口 大小,所有Widget的大小就会变了。

QWidget::setSizePolicy ( QSizePolicy::Policy horizontal, QSizePolicy::Policy vertical )

lineEdit->setSizePolicy(Expanding, Expanding);