基本上重新实现QWidget的resizeEvent()函数就可以达到你的要求了。
void xxx:resizeEvent( QResizeEvent* e)
{
QSize oldSize,size;
oldSize = e->oldSize(); //获取开始的size
size = e->size(); //获取现在的size
//获取长宽变化的比率
qreal ratioW,ratioH;
ratioW = size.width()/oldSize.width();
ratioH = size.height()/oldSize.height();
//窗体中的控件按比例缩放
m_item1->resize(QSize(m_item1->size().width()*ratioW,
m_item1->size.height()*ratioH));
//如果你有很多控件,请继续缩放下去……
..............
}
void xxx:resizeEvent( QResizeEvent* e)
{
QSize oldSize,size;
oldSize = e->oldSize(); //获取开始的size
size = e->size(); //获取现在的size
//获取长宽变化的比率
qreal ratioW,ratioH;
ratioW = size.width()/oldSize.width();
ratioH = size.height()/oldSize.height();
//窗体中的控件按比例缩放
m_item1->resize(QSize(m_item1->size().width()*ratioW,
m_item1->size.height()*ratioH));
//如果你有很多控件,请继续缩放下去……
..............
}