qt 绘制折线图
时间: 2023-07-05 21:20:28 浏览: 102
要在 Qt 中绘制折线图,可以使用 QPainter 类和 QPen 类来实现。下面是一个简单的绘制折线图的示例代码:
```
#include <QtWidgets>
class LineChart : public QWidget
{
public:
LineChart(QWidget *parent = nullptr) : QWidget(parent) {}
protected:
void paintEvent(QPaintEvent *event) override
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
// 设置画笔,线条颜色、宽度等
QPen pen(Qt::red, 2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
painter.setPen(pen);
// 绘制坐标轴
painter.drawLine(50, 250, 350, 250); // x 轴
painter.drawLine(50, 250, 50, 50); // y 轴
// 绘制折线图
QVector<QPointF> points;
points << QPointF(70, 200) << QPointF(120, 50) << QPointF(200, 150) << QPointF(280, 100);
painter.drawPolyline(points);
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
LineChart lineChart;
lineChart.resize(400, 300);
lineChart.show();
return app.exec();
}
```
在 paintEvent 函数中,首先创建了一个 QPainter 对象,并设置了抗锯齿渲染。然后创建了一个 QPen 对象来设置画笔颜色、线条宽度、端点样式和连接样式。接着绘制了坐标轴,最后绘制了折线图,使用 QVector<QPointF> 存储折线图上的点的坐标。在最后调用 drawPolyline 方法来绘制折线。
阅读全文