update()
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QPainter>
class MyWidget : public QWidget {
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent), displayText("Hello, World!") {
// 创建一个按钮并连接槽函数
QPushButton *button = new QPushButton("Change Text", this);
button->setGeometry(50, 150, 100, 30);
connect(button, &QPushButton::clicked, this, &MyWidget::changeText);
}
protected:
void paintEvent(QPaintEvent *event) override {
QPainter painter(this);
// 设置字体大小
painter.setFont(QFont("Arial", 24));
// 在窗口中央绘制当前文本
painter.drawText(rect(), Qt::AlignCenter, displayText);
}
private slots:
void changeText() {
// 改变要显示的文本
displayText = "Text Changed!";
// 请求重绘,触发 paintEvent()
update();
}
private:
QString displayText; // 显示的文本
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyWidget widget;
widget.resize(400, 300);
widget.show();
return app.exec();
}
#include "main.moc"
2025/6/12大约 21 分钟

