在c++qt中qgraphicsscene每秒更新一个随机点显示
时间: 2024-02-27 15:58:43 浏览: 64
好的,以下是使用C++ Qt实现QGraphicsScene每秒更新一个随机点的示例代码:
```cpp
#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QTimer>
#include <QPointF>
#include <QPen>
#include <QColor>
#include <QRandomGenerator>
class MyScene : public QGraphicsScene {
public:
MyScene(QObject* parent = nullptr) : QGraphicsScene(parent) {
setSceneRect(-200, -200, 400, 400);
timer = new QTimer(this);
connect(timer, &QTimer::timeout, this, &MyScene::drawPoint);
timer->start(1000);
}
void drawPoint() {
QPen pen(QColor(255, 0, 0), 3, Qt::SolidLine);
qreal x = QRandomGenerator::global()->bounded(-200, 200);
qreal y = QRandomGenerator::global()->bounded(-200, 200);
QPointF point(x, y);
addEllipse(point.x(), point.y(), 5, 5, pen);
}
private:
QTimer* timer;
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QGraphicsView view;
MyScene scene;
view.setScene(&scene);
view.show();
return app.exec();
}
```
这个示例代码会在QGraphicsScene中每秒绘制一个随机点,每次绘制前会清除之前的图形。我们使用了QTimer来实现每秒更新一个随机点的效果。需要注意的是,我们使用了Qt的随机数生成器QRandomGenerator来生成随机点的坐标。
阅读全文