QT开发中文网

C++让Qpainter画出的正方形闪烁起来

要让QPainter画出的正方形闪烁起来,可以使用定时器和随机颜色。具体实现步骤如下:

  1. 在窗口类中定义定时器对象 QTimer *timer;

  2. 在构造函数中初始化定时器,并连接定时器超时信号和槽函数,例如:connect(timer, SIGNAL(timeout()), this, SLOT(update()));

  3. 在槽函数中获取随机颜色 QColor color(qrand() % 256, qrand() % 256, qrand() % 256); 然后设置画刷颜色 painter.setBrush(QBrush(color));

  4. 在paintEvent函数中绘制正方形,并启动定时器 timer->start(1000); (这里的时间间隔可以根据需要调整)

完整代码示例:

mainwindow.h 文件:

#ifndef MAINWINDOW_H #define MAINWINDOW_H

#include #include #include

namespace Ui { class MainWindow; }

class MainWindow : public QMainWindow {

Q_OBJECT

public:

explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();

protected:

void paintEvent(QPaintEvent *event);

private slots:

void update();

private:

Ui::MainWindow *ui;
QTimer *timer;

};

#endif // MAINWINDOW_H

mainwindow.cpp 文件:

#include “mainwindow.h” #include “ui_mainwindow.h”

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),
ui(new Ui::MainWindow)

{

ui->setupUi(this);

// 初始化定时器
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update()));
timer->start(1000); // 启动定时器,每秒触发一次超时信号

}

MainWindow::~MainWindow() {

delete ui;

}

void MainWindow::paintEvent(QPaintEvent *event) {

QPainter painter(this);
QColor color(qrand() % 256, qrand() % 256, qrand() % 256); // 获取随机颜色
painter.setBrush(QBrush(color));
painter.drawRect(50, 50, 100, 100); // 绘制正方形

}

void MainWindow::update() {

update(); // 触发窗口重绘

}

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=662

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?