QT的RESIZEEVENT重写后需要调用父类的吗
时间: 2023-02-15 14:39:13 浏览: 77
是的,在重写 QWidget::resizeEvent() 函数时,通常需要调用父类的 resizeEvent() 函数。这样做可以确保在子类中实现的代码能够正常工作,并且在父类中的代码也能正常工作。
具体来说,你应该在你的代码的最开始加入这一行:
```
QWidget::resizeEvent(event);
```
这样就可以调用父类的 resizeEvent() 函数了。
另外,需要注意的是,在调用父类的 resizeEvent() 函数之前,你应该先对事件进行处理。例如,你可以在重写的 resizeEvent() 函数中添加如下代码:
```
void MyWidget::resizeEvent(QResizeEvent *event)
{
// 在此处添加你的代码
QWidget::resizeEvent(event); // 调用父类的 resizeEvent() 函数
}
```
相关问题
qt resizeevent 重写
在 Qt 中,QWidget 类提供了一个 resizeEvent() 方法,它是在窗口尺寸改变时自动调用的。你可以通过重写该方法来实现自定义的窗口大小调整行为。
下面是一个简单的例子,演示如何重写 resizeEvent() 方法:
```cpp
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = nullptr)
: QWidget(parent)
{
// 设置窗口最小尺寸
setMinimumSize(200, 200);
}
protected:
void resizeEvent(QResizeEvent *event) override
{
// 获取窗口新的尺寸
QSize newSize = event->size();
// 在控制台输出新的尺寸
qDebug() << "New size:" << newSize;
// 调用父类的 resizeEvent() 方法
QWidget::resizeEvent(event);
}
};
```
在上面的代码中,我们定义了一个 MyWidget 类,它继承自 QWidget。在构造函数中,我们设置了窗口的最小尺寸为 200x200 像素。然后,我们重写了 resizeEvent() 方法,在该方法中获取了窗口的新尺寸,并在控制台输出了它。最后,我们调用了父类的 resizeEvent() 方法,以确保窗口大小调整的正常执行。
当用户改变窗口大小时,resizeEvent() 方法会自动被调用,并传递一个 QResizeEvent 对象作为参数,该对象包含了窗口的新尺寸。你可以在该方法内部实现自定义的逻辑,比如重新布局控件、重绘窗口等等。
注意,如果你在重写 resizeEvent() 方法时没有调用父类的实现,那么窗口的默认行为可能会被破坏,比如窗口不能正常最小化或关闭。因此,一定要记得调用父类的 resizeEvent() 方法。
qt resizeevent
`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` 函数,然后计算了控件宽高的比例,最后遍历了所有子控件,并对它们进行了等比例缩放。
阅读全文