QChart 设置图例折线图名称在同一条线上在在名称前添加图片

2024-05-11 06:48

本文主要是介绍QChart 设置图例折线图名称在同一条线上在在名称前添加图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先嵌套QGraphicsScene自己做一个头

void CreateTopWidget::initWidget()
{
    setStyleSheet("background-color:rgb(8, 21, 66);");
    m_scene = new QGraphicsScene();
    m_scene->setSceneRect(0, 0, 100, 10);
 
    m_grapView = new QGraphicsView();
    m_grapView->setStyleSheet("border: 3px solid rgb(8, 21, 66);");
    m_grapView->setScene(m_scene);
 
    QHBoxLayout * lay = new QHBoxLayout();
    lay->setContentsMargins(9, 0, 0, 0);
    lay->setSpacing(0);
    setLayout(lay);
 
    QWidget * widget = new QWidget();
    QHBoxLayout* tblay = new QHBoxLayout();
    tblay->setContentsMargins(0, 0, 0, 0);
    tblay->setSpacing(20);
    widget->setLayout(tblay);
 
    lb_img = new QLabel();
    tblay->addWidget(lb_img);
 
    lb_name = new QLabel();
    tblay->addWidget(lb_name);
 
    QSpacerItem* spacer = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
    tblay->addSpacerItem(spacer);
 
    QHBoxLayout* btnLay = new QHBoxLayout();
    btnLay->setContentsMargins(0, 0, 0, 0);
    QWidget* wt_title = new QWidget();
    wt_title->setGeometry(0, 0, 100, 10);
    btnLay->addWidget(wt_title);
    tblay->addLayout(btnLay);
 
    QHBoxLayout* hblay = new QHBoxLayout();
    hblay->setContentsMargins(0, 0, 0, 0);
    hblay->setSpacing(0);
    wt_title->setLayout(hblay);
    hblay->addWidget(m_grapView);
 
    lay->addWidget(widget);
 
}

因为QChart + QGraphicsScene 也可以使用,所以以QGraphicsView为基类

MyChart::MyChart(QWidget *parent) : QGraphicsView(parent)
{
    initWidget();
}
 
void MyChart::initWidget()
{
    m_grapScene = new QGraphicsScene();
    this->setScene(m_grapScene);
    wt_top = new CreateTopWidget();
 
    m_chart = new QChart();
    QBrush brush(QColor(8, 21, 66));
    m_chart->setBackgroundBrush(brush);
    m_chart->setAnimationOptions(QChart::SeriesAnimations);
    m_chart->createDefaultAxes();
 
    QLegend *le = m_chart->legend();
    m_grapScene->addItem(m_chart);
    m_grapScene->addWidget(wt_top);
    wt_top->setGrapScene(le);//获取当前图例放入QGraphicsScene中
}

之后

void MainWindow::initWidget()
{
    QGraphicsScene* scene = new QGraphicsScene();
    scene->setSceneRect(0, 10, 400, 300);
 
    QGraphicsView* view = new QGraphicsView();
    view->setScene(scene);
    view->setSceneRect(0, 0, 400, 300);
 
    MyChart *chart = new MyChart();
    chart->setTitle(":/icon.png", "Series 样例");
    chart->setGeometrys(0, 10, 600, 400);
 
    QBarCategoryAxis* Axis = new QBarCategoryAxis();
    Axis->setGridLineVisible(false);
    Axis->setLabelsColor(QColor(255, 255, 255));
    QStringList list;
    list<<"0"<<"1"<<"2"<<"3"<<"4"<<"5";
    Axis->append(list);
 
    QValueAxis* AxisY = new QValueAxis;
    AxisY->setLabelsColor(QColor(255, 255, 255));
    AxisY->setMinorGridLineVisible(false);
    AxisY->setGridLineVisible(false);
    AxisY->setLabelFormat("%d"); //设置刻度的格式
    AxisY->setRange(0, 10);
    AxisY->setTickCount(5);     //设置多少格
    AxisY->setMinorTickCount(5); //设置每格小刻度线的数目
 
    QSplineSeries *series = new QSplineSeries(chart);
    QList<QPointF> pointF;
    pointF<<QPoint(0,1)<<QPoint(1,1)<<QPoint(2,2)<<QPoint(3,3)<<QPoint(4,4);
    series->append(pointF);
    QString name("Series ");
    series->setName(name + QString::number(0));
 
    QSplineSeries *series1 = new QSplineSeries(chart);
    QList<QPointF> pointF1;
    pointF1<<QPoint(0,9)<<QPoint(1,4)<<QPoint(2,3)<<QPoint(3,1)<<QPoint(4,10);
    series1->append(pointF1);
    series1->setName(name + QString::number(1));
 
    chart->Legend()->setLabelColor(QColor(255,255,255));
 
    chart->addSeries(series);
    chart->addSeries(series1);
 
    chart->setAxisX(Axis, series);
    chart->setAxisX(Axis, series1);
 
    chart->setAxisY(AxisY, series);
    chart->setAxisY(AxisY, series1);
    ui->widget->layout()->addWidget(chart);
}

效果图:

下载地址:https://download.csdn.net/download/u010304326/10539740

这篇关于QChart 设置图例折线图名称在同一条线上在在名称前添加图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/978797

相关文章

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪