首先,确保你已经安装了Qt库和Qt Creator。接下来,创建一个新的Qt Widgets Application项目。
1. 在Qt Creator中,打开主窗口的UI文件(默认为mainwindow.ui),然后添加以下控件:
- QPushButton:用于开始和停止绘图

- QGraphicsView:用于显示绘图区域
- QGraphicsScene:用于管理绘图元素

- QGraphicsLineItem:用于绘制线条
- QGraphicsRectItem:用于绘制矩形
- QGraphicsEllipseItem:用于绘制椭圆
- QAction:用于处理用户操作
2. 设置UI文件的属性,例如将QPushButton的文本设置为"开始",将QGraphicsView的尺寸设置为与主窗口相同等。
3. 双击QPushButton,将其文本更改为"停止",并为其添加一个槽函数,如下所示:
```cpp
private slots:
void on_pushButton_clicked();
```
4. 在主窗口类的头文件中,包含必要的头文件,并声明槽函数:
```cpp
#include <QMainWindow>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QGraphicsLineItem>
#include <QGraphicsRectItem>
#include <QGraphicsEllipseItem>
#include <QAction>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget parent = nullptr);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow ui;
QGraphicsScene scene;
QGraphicsView view;
};
```
5. 在主窗口类的源文件中,初始化UI组件、场景和视图,并连接信号和槽:
```cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
scene = new QGraphicsScene(this);
view = new QGraphicsView(scene, this);
setCentralWidget(view);
connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::on_pushButton_clicked);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
if (isDrawing) {
scene->clear();
isDrawing = false;
ui->pushButton->setText("开始");
} else {
scene->clear();
isDrawing = true;
ui->pushButton->setText("停止");
}
}
```
6. 编译并运行程序。点击"开始"按钮,你应该能在视图中看到线条。再次点击"开始"按钮,视图将被清空。
这只是一个简单的示例,你可以根据需要添加更多功能,例如支持多种画笔颜色、线条粗细等。你还可以尝试使用Qt的OpenGL模块来实现更高级的绘图功能。