qwt怎样实现柱状图鼠标点击一下显示当前这个柱子的值双击两下弹出一个窗体

hahahhah1 2016-08-23 10:50:48

使用qwt中的plot绘制了一个柱状图
但是现在不知道怎样实现柱状图鼠标点击一下显示当前这个柱子的值双击两下弹出一个窗体的效果,求大神指导
...全文
753 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hahahhah1 2016-09-01
  • 打赏
  • 举报
回复
我用的是点和曲线图
FlyToTMoon 2016-08-30
  • 打赏
  • 举报
回复
引用 15 楼 hahahhah1 的回复:
但是坐标设置不能设置相同的,而且绘制出来x与y轴的下标都只是表面的里面的坐标并没有改变
可能不是很了解那个柱状图。。为什么会出现相同的坐标。。坐标相同怎么确定点在哪个位置? 点或者跟曲线是可以做到与坐标对应的
hahahhah1 2016-08-30
  • 打赏
  • 举报
回复
引用 14 楼 caojian005 的回复:
[quote=引用 13 楼 hahahhah1 的回复:] 还有好多坐标是相同的很是纠结
图的坐标都是动态的,你只要setSamples里面数据ok就行 这个函数可以加上试试setAutoReplot(true); // Qwt自动刷新图形 坐标设值可以手动设也可以让qwt自己设置,看你自己需要[/quote] 但是坐标设置不能设置相同的,而且绘制出来x与y轴的下标都只是表面的里面的坐标并没有改变
FlyToTMoon 2016-08-26
  • 打赏
  • 举报
回复
柱状图没做过,不过在qwt是有例子的barchart.exe,tvplot.exe,distrowatch.exe还有其他的,都是柱状图的使用示例。 点状图按照下面代码中, case Dots:就行了,vecData是数据
QwtPlotCurve * curve = new QwtPlotCurve;
        curve->setPen(color);        // 设线条颜色
        // 设置曲线样式
        switch (type)
        {
        case Lines:
           curve->setStyle(QwtPlotCurve::Lines);
           break;
        case Sticks:
            curve->setStyle(QwtPlotCurve::Sticks);
            // 添加头状效果,删除后无头状效果
            curve->setSymbol( new QwtSymbol( QwtSymbol::Ellipse,
                QColor( Qt::gray ), QColor( Qt::yellow ), QSize( 4, 3 ) ) );
            break;
        case Dots:
            curve->setStyle(QwtPlotCurve::Dots);
            break;
        case BoldLine:
            curve->setStyle(QwtPlotCurve::Lines);
            curve->setPen(color, 2);
            break;
        default:
            curve->setStyle(QwtPlotCurve::Lines);
        }
curve->attach(this);
curve->setSamples(vecData)
FlyToTMoon 2016-08-26
  • 打赏
  • 举报
回复
引用 13 楼 hahahhah1 的回复:
还有好多坐标是相同的很是纠结
图的坐标都是动态的,你只要setSamples里面数据ok就行 这个函数可以加上试试setAutoReplot(true); // Qwt自动刷新图形 坐标设值可以手动设也可以让qwt自己设置,看你自己需要
hahahhah1 2016-08-26
  • 打赏
  • 举报
回复
还有好多坐标是相同的很是纠结
hahahhah1 2016-08-26
  • 打赏
  • 举报
回复
但是我的x轴和y轴的坐标都是动态变化的
引用 11 楼 caojian005 的回复:
柱状图没做过,不过在qwt是有例子的barchart.exe,tvplot.exe,distrowatch.exe还有其他的,都是柱状图的使用示例。 点状图按照下面代码中, case Dots:就行了,vecData是数据
QwtPlotCurve * curve = new QwtPlotCurve;
        curve->setPen(color);        // 设线条颜色
        // 设置曲线样式
        switch (type)
        {
        case Lines:
           curve->setStyle(QwtPlotCurve::Lines);
           break;
        case Sticks:
            curve->setStyle(QwtPlotCurve::Sticks);
            // 添加头状效果,删除后无头状效果
            curve->setSymbol( new QwtSymbol( QwtSymbol::Ellipse,
                QColor( Qt::gray ), QColor( Qt::yellow ), QSize( 4, 3 ) ) );
            break;
        case Dots:
            curve->setStyle(QwtPlotCurve::Dots);
            break;
        case BoldLine:
            curve->setStyle(QwtPlotCurve::Lines);
            curve->setPen(color, 2);
            break;
        default:
            curve->setStyle(QwtPlotCurve::Lines);
        }
curve->attach(this);
curve->setSamples(vecData)
我的点是动态打的,而且x轴坐标和y轴坐标是动态变化的。最纠结的就是x轴和y轴坐标同时变化。
hahahhah1 2016-08-25
  • 打赏
  • 举报
回复
上上上楼的大神指导一下
hahahhah1 2016-08-25
  • 打赏
  • 举报
回复
点状图的效果



但是用qwt中的plot不知道怎样做出这样的效果。
hahahhah1 2016-08-25
  • 打赏
  • 举报
回复
引用 7 楼 caojian005 的回复:
[quote=引用 6 楼 hahahhah1 的回复:]
大神请教你一下,就是我要用plot动态的在上面打点 x轴与y轴下标同室都变打的点能够全部在上面显示,我应该怎么做

没看懂这句话,显示曲线的话
QwtPlotCurve * curve = new QwtPlotCurve;
curve->setPen(color); // 设线条颜色
// 设置曲线样式
switch (type)
{
case Lines:
curve->setStyle(QwtPlotCurve::Lines);
break;
case Sticks:
curve->setStyle(QwtPlotCurve::Sticks);
// 添加头状效果,删除后无头状效果
curve->setSymbol( new QwtSymbol( QwtSymbol::Ellipse,
QColor( Qt::gray ), QColor( Qt::yellow ), QSize( 4, 3 ) ) );
break;
case Dots:
curve->setStyle(QwtPlotCurve::Dots);
break;
case BoldLine:
curve->setStyle(QwtPlotCurve::Lines);
curve->setPen(color, 2);
break;
default:
curve->setStyle(QwtPlotCurve::Lines);
}
curve->attach(this);
curve->setSamples(vecData)
[/quote]
我要做出来的效果如下图所示:
柱状图

hahahhah1 2016-08-25
  • 打赏
  • 举报
回复
引用 5 楼 caojian005 的回复:
[quote=引用 4 楼 hahahhah1 的回复:] 不是鼠标移动时候显示
那应该也得单独做,柱状图不知道,曲线图marker能帮忙[/quote] 大神请教你一下,就是我要用plot动态的在上面打点 x轴与y轴下标同室都变打的点能够全部在上面显示,我应该怎么做
FlyToTMoon 2016-08-25
  • 打赏
  • 举报
回复
引用 4 楼 hahahhah1 的回复:
不是鼠标移动时候显示
那应该也得单独做,柱状图不知道,曲线图marker能帮忙
FlyToTMoon 2016-08-25
  • 打赏
  • 举报
回复
引用 6 楼 hahahhah1 的回复:
大神请教你一下,就是我要用plot动态的在上面打点 x轴与y轴下标同室都变打的点能够全部在上面显示,我应该怎么做
没看懂这句话,显示曲线的话
QwtPlotCurve * curve = new QwtPlotCurve;
        curve->setPen(color);        // 设线条颜色
        // 设置曲线样式
        switch (type)
        {
        case Lines:
           curve->setStyle(QwtPlotCurve::Lines);
           break;
        case Sticks:
            curve->setStyle(QwtPlotCurve::Sticks);
            // 添加头状效果,删除后无头状效果
            curve->setSymbol( new QwtSymbol( QwtSymbol::Ellipse,
                QColor( Qt::gray ), QColor( Qt::yellow ), QSize( 4, 3 ) ) );
            break;
        case Dots:
            curve->setStyle(QwtPlotCurve::Dots);
            break;
        case BoldLine:
            curve->setStyle(QwtPlotCurve::Lines);
            curve->setPen(color, 2);
            break;
        default:
            curve->setStyle(QwtPlotCurve::Lines);
        }
curve->attach(this);
curve->setSamples(vecData)
hahahhah1 2016-08-24
  • 打赏
  • 举报
回复
引用 3 楼 hahahhah1 的回复:
[quote=引用 2 楼 caojian005 的回复:] 这个效果是qwt自带的,鼠标悬浮的点提示。 m_picker = new QwtPlotPicker( QwtPlot::xBottom, QwtPlot::yLeft, QwtPlotPicker::NoRubberBand, QwtPicker::AlwaysOn, this->canvas() ); m_picker->setTrackerPen( QColor( Qt::white ) ); 双击弹出效果得自己在mouseDoubleClickEvent事件中实现
我的意思是单击显示柱状图的具体值[/quote] 不是鼠标移动时候显示
hahahhah1 2016-08-24
  • 打赏
  • 举报
回复
引用 2 楼 caojian005 的回复:
这个效果是qwt自带的,鼠标悬浮的点提示。 m_picker = new QwtPlotPicker( QwtPlot::xBottom, QwtPlot::yLeft, QwtPlotPicker::NoRubberBand, QwtPicker::AlwaysOn, this->canvas() ); m_picker->setTrackerPen( QColor( Qt::white ) ); 双击弹出效果得自己在mouseDoubleClickEvent事件中实现
我的意思是单击显示柱状图的具体值
FlyToTMoon 2016-08-23
  • 打赏
  • 举报
回复
这个效果是qwt自带的,鼠标悬浮的点提示。
m_picker = new QwtPlotPicker( QwtPlot::xBottom, QwtPlot::yLeft,
QwtPlotPicker::NoRubberBand, QwtPicker::AlwaysOn,
this->canvas() );
m_picker->setTrackerPen( QColor( Qt::white ) );

双击弹出效果得自己在mouseDoubleClickEvent事件中实现
hahahhah1 2016-08-23
  • 打赏
  • 举报
回复
自己先顶一波

16,175

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧