重新实现QWidget中的受保护虚函数resizeEvent()
1.首先以创建一个继承QWidget的项目,通过main函数里的默认代码支持事件循环。
int main(int argc, char *argv[])
{
QApplication a(argc, argv); //创建应用程序对象
MainWindow w;
w.show();
return a.exec(); //启动事件循环机制
}
2.在头文件中重写继承于QWidget中的受保护虚函数resizeEvent()。
class Widget : public QWidget {
Q_OBJECT
public:
Widget(QWidget* parent = nullptr);
~Widget();
protected:
void resizeEvent(QResizeEvent* event);
private:
Ui::Widget* ui;
};
3.在类的实现函数中重写resizeEvent()。
void Widget::resizeEvent(QResizeEvent* event)
{
// QResizeEvent的构造函数
// QResizeEvent(const QSize &size, const QSize &oldSize)
qDebug() << "原有尺寸:" << event->oldSize() << " 现在尺寸:" << event->size();
}
4.运行。拖动改变窗体尺寸,实时输出QSize数据。