qt resizeevent 重写
时间: 2023-11-01 12:00:44 浏览: 286
Qt重写事件
在 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() 方法。
阅读全文