qt绘制折线图
时间: 2023-07-05 08:05:01 浏览: 65
在 Qt 中,可以使用 QPainter 绘制折线图。以下是一个简单的示例:
```cpp
#include <QtWidgets>
class ChartWidget : public QWidget {
public:
ChartWidget(QWidget *parent = nullptr) : QWidget(parent) {}
protected:
void paintEvent(QPaintEvent *event) override {
Q_UNUSED(event);
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
// 数据
QVector<QPointF> points;
points << QPointF(10, 10) << QPointF(30, 80) << QPointF(60, 50)
<< QPointF(90, 70) << QPointF(110, 30);
// 绘制坐标轴
painter.drawLine(10, 10, 10, height() - 10);
painter.drawLine(10, height() - 10, width() - 10, height() - 10);
// 绘制折线
painter.setPen(QPen(Qt::red, 2));
painter.drawPolyline(points);
}
};
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
ChartWidget w;
w.resize(400, 300);
w.show();
return a.exec();
}
```
在上面的示例中,我们在 `paintEvent` 函数中绘制了坐标轴和折线。首先,我们创建了一个 `QVector<QPointF>` 类型的 `points` 变量,用于存储折线上的点。然后,我们使用 `drawLine` 函数绘制了坐标轴。最后,我们使用 `setPen` 函数设置画笔,使用 `drawPolyline` 函数绘制折线。
当然,这只是一个简单的示例。在实际应用中,您可能需要在坐标轴上标记刻度、使用不同的颜色和线型绘制多条折线、添加图例等。