Qt的update函数是用于重新绘制窗口内容的函数。
语法:
void QWidget::update(const QRect &rect);
void QWidget::update();
参数:
- const QRect &rect:表示需要更新的区域。如果不指定区域,则默认更新整个窗口。
使用方式:
- 在窗口中某些部分发生变化时,调用update函数来请求重新绘制窗口。
- update函数会在Qt事件循环结束后自动调用paintEvent函数,进行重绘操作。
示例:
下面是一个简单的例子,展示如何使用update函数重新绘制窗口:
#include <QApplication>
#include <QWidget>
#include <QPainter>
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent)
{
setFixedSize(200, 200);
}
protected:
void paintEvent(QPaintEvent *event) override
{
QPainter painter(this);
painter.fillRect(rect(), Qt::white);
painter.setPen(Qt::red);
painter.drawText(rect(), Qt::AlignCenter, "Hello, world!");
}
void mousePressEvent(QMouseEvent *event) override
{
update();
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
这个例子创建了一个固定大小为200x200的窗口,并在窗口中心绘制一段文本。当鼠标点击窗口时,调用update函数请求重新绘制窗口。在重绘时,将清空窗口并将文本绘制在中心位置。