即窗口尺寸变化时会触发这个事件
通常在窗口尺寸变化后,在尺寸改变事件中,获取最新的尺寸,然后将内部某些控件的大小也跟着改变,或者改变布局
---------------------------------------------------------------------------------------------------------------------------------
事件对应的类为:QResizeEvent
需要重写的函数为
void resizeEvent(QResizeEvent* ev) override
对应的事件类型为:
QEvent::Resize
---------------------------------------------------------------------------------------------------------------------------------
QResizeEvent常用的方法:
获取之前的尺寸:ev->oldSize()
获取大小改变后的尺寸:ev->size()
---------------------------------------------------------------------------------------------------------------------------------举例:
窗口改变后,内部按钮的大小跟着改变
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include<QPushButton>
#include<QResizeEvent>class Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr) : QWidget(parent){resize(600,500);btn=new QPushButton("按钮",this);btn->setGeometry(20,20,100,30);}~Widget()=default;protected://重写resizeEventvoid resizeEvent(QResizeEvent* ev) override{//获取之前的尺寸qDebug()<<"oldsize:"<<ev->oldSize();//获取最新的尺寸qDebug()<<"newsize:"<<ev->size();btn->setGeometry(20,20,ev->size().width()/10,ev->size().height()/10);}QPushButton* btn;};
#endif // WIDGET_H