qchart 柱状图顶端带数字显示以及tooltip

最近做个小界面,之前有用过qchart虽然比qwt好用一点,但是bug还是有那么些,总体还行吧。当前想实现的功能就是讲数据以柱状图的形式实现,并且在柱状图的顶部显示每个柱状图的数据,同时提供Tooltip功能。那么就开始说说如何创建吧。

1、首先定义实现qchart对象

m_char=new QChart();
m_char->setAnimationOptions(QChart::SeriesAnimations);//动画显示

2、接下来,定义实现 QBarSeries对象,记住一定要在构造函数中加m_char,这个对象实际上理解为就是你X轴S1,1、3号线的集合,

m_series=new QBarSeries(m_char);

3、然后就是建立XY轴了,

m_typeAxis = new QBarCategoryAxis();
    //m_typeAxis->append(categories);
    m_char->createDefaultAxes();//创建默认的左侧的坐标轴(根据 QBarSet 设置的值)
    m_char->setAcceptTouchEvents(true);
    m_char->setAxisX(m_typeAxis, m_series);//设置坐标轴

    m_typeAxisY = new QValueAxis;
    m_typeAxisY->setRange(0, 40);
   // m_typeAxisY->setTickCount(10);     //设置多少格
    //m_typeAxisY->setMinorTickCount(5); //设置每格小刻度线的数目

    m_char->setAxisY(m_typeAxisY, m_series);

4、生成 QChartView对象,将m_char加入其中;

m_mybarView=new QChartView(m_char);
    m_mybarView->setRenderHint(QPainter::Antialiasing);

 

5、将m_mybarView这个对象加入到你得布局当中即可。

m_barview=new MyBarView(bvp);
ui->barChartView->addWidget(m_barview->m_mybarView);

6、如果你要tooltip功能,你需要使用这样的信号与槽,

connect(m_series, SIGNAL(hovered(bool, int, QBarSet*)), this, SLOT(sltTooltip(bool, int, QBarSet*)));
void MyBarView::sltTooltip(bool status, int index, QBarSet *barset)
{
    if (m_tooltip == 0)
        m_tooltip = new ChartTip(m_char);

    if (status) {
        int yindex=m_barSetList.indexOf(barset);
        double indexbarset=m_barSetList.indexOf(bars
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值