qt resizeevent
时间: 2023-09-05 14:14:02 浏览: 107
`resizeEvent` 是 Qt 中的一个事件处理函数,当控件的大小发生变化时,会自动调用该函数。在该函数中,可以重新布局控件、更新控件的显示内容等。
以下是 `resizeEvent` 的函数原型:
```cpp
void resizeEvent(QResizeEvent* event);
```
其中 `event` 参数是一个 `QResizeEvent` 类型的对象,包含了控件的新大小和旧大小等信息。
例如,下面的代码重写了 `QWidget` 的 `resizeEvent` 函数,将控件中的所有子控件等比例缩放:
```cpp
void MyWidget::resizeEvent(QResizeEvent* event)
{
QWidget::resizeEvent(event);
QSize oldSize = event->oldSize();
QSize newSize = event->size();
double ratioW = (double)newSize.width() / oldSize.width();
double ratioH = (double)newSize.height() / oldSize.height();
for (auto child : children())
{
child->resize(child->width() * ratioW, child->height() * ratioH);
}
}
```
在这个例子中,我们首先调用了 `QWidget` 的 `resizeEvent` 函数,然后计算了控件宽高的比例,最后遍历了所有子控件,并对它们进行了等比例缩放。
阅读全文