首先得创建一个QWidget部件,并且定义两个全局变量用来保存长和宽mWidth和mHeight,这两个数值就是随窗口改变而改变的数值
接着别忘记在构建函数内使用setCentralWidget,当然如果不设置也可以实现只需要将下面resizeEvent中的
mHeight = sceneWidget.height(); mWidth = sceneWidget.width();改为如下:mWidth = ui->centralWidget->width(), mHeight = ui->centralWidget->height();也可实现获取
然后重写resizeEvent事件,并在其中写上想随窗口变化部件的设置代码。
例如,下列代码中的mainToolBar部件就可实时改变(如有不妥之处,敬请留言或者邮件1258137325@qq.com)
=====xxx.h=====
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void resizeEvent(QResizeEvent *event);
private:
Ui::MainWindow *ui;
QWidget sceneWidget;
int mWidth;
int mHeight;
=====xxx.cpp======
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow){ui->setupUi(this);setCentralWidget(&sceneWidget);...
...
}
void MainWindow::resizeEvent(QResizeEvent *event){QMainWindow::resizeEvent(event);mHeight = sceneWidget.height();mWidth = sceneWidget.width();ui->mainToolBar->setGeometry(0,0,mHeight/10,mWidth/10);}