使用qt编写一个简单的图形视图的例子
时间: 2024-06-11 10:04:23 浏览: 141
这里提供一个使用Qt编写的简单图形视图的例子,实现一个可以显示随机点的小应用。
首先,在Qt Creator中新建一个Qt Widgets应用程序项目,命名为“GraphicViewDemo”。
接着,在mainwindow.h头文件中添加以下代码:
```
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QPointF>
#include <QTimer>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
QGraphicsView *view;
QGraphicsScene *scene;
QTimer *timer;
private slots:
void addPoint();
};
#endif // MAINWINDOW_H
```
这里声明了一个MainWindow类,继承自QMainWindow,并添加了成员变量view、scene和timer,以及一个槽函数addPoint()。
接着,在mainwindow.cpp文件中添加以下代码:
```
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QRandomGenerator>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
view = new QGraphicsView(this);
setCentralWidget(view);
scene = new QGraphicsScene(this);
view->setScene(scene);
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(addPoint()));
timer->start(1000);
}
MainWindow::~MainWindow()
{
}
void MainWindow::addPoint()
{
QPointF point(QRandomGenerator::global()->bounded(-100, 100),
QRandomGenerator::global()->bounded(-100, 100));
scene->addEllipse(point.x(), point.y(), 5, 5);
}
```
在构造函数中,创建了一个QGraphicsView和QGraphicsScene,并将view设置为主窗口的中央部件。接着,创建了一个QTimer,并将其timeout()信号连接到addPoint()槽函数上,设置定时器每1秒触发一次。在addPoint()槽函数中,使用QRandomGenerator生成随机点,并将其添加到scene中。
最后,在mainwindow.ui文件中将窗口大小调整为合适的大小,并将窗口的标题设置为“Graphic View Demo”。
编译运行程序,可以看到随机点不断在窗口中出现。这就是一个简单的使用Qt编写的图形视图应用程序。
阅读全文