qt 自由绘图
时间: 2023-07-05 19:08:38 浏览: 140
在 Qt 中实现自由绘图可以使用 QPainter 类。以下是一个简单的示例:
```c++
#include <QPainter>
#include <QWidget>
class MyPaintWidget : public QWidget
{
public:
MyPaintWidget(QWidget *parent = nullptr) : QWidget(parent) {}
protected:
void paintEvent(QPaintEvent *event) override
{
QPainter painter(this);
// 设置画笔颜色和宽度
QPen pen(Qt::black, 2);
painter.setPen(pen);
// 绘制直线
painter.drawLine(10, 10, 100, 100);
// 绘制矩形
QRect rect(50, 50, 100, 100);
painter.drawRect(rect);
// 绘制圆形
QRectF ellipseRect(150, 50, 100, 100);
painter.drawEllipse(ellipseRect);
// 绘制文本
painter.drawText(250, 100, "Hello, Qt!");
}
};
```
在上面的示例中,我们创建了一个自定义的 QWidget 子类 MyPaintWidget,并重写了它的 paintEvent() 函数。在 paintEvent() 函数中,我们创建了一个 QPainter 对象,并设置了画笔的颜色和宽度。然后,我们使用 QPainter 对象绘制了一些基本形状,如直线、矩形和圆形,最后绘制了一些文本。在实际应用中,您可以根据需要修改绘制的形状和文本。
阅读全文