qwtplot 如何用获得选取的数据或如何获得QwtPlotZoomer 和qwtplotpicker的selected的信号

caiwei_cs 2015-01-13 12:23:48
自己做一个qwt工程用到qwtplot
装了一个QwtPlotZoomer,可以缩放选取波形

QwtPlotZoomer *zmPress;
QwtPlotPicker *pkPress;
//zoomer
zmPress = new QwtPlotZoomer( ui->plotPress->canvas() );
zmPress->setRubberBandPen( QColor( Qt::gray ) );
zmPress->setTrackerPen( QColor( Qt::black ) );
zmPress->setMousePattern(QwtEventPattern::MouseSelect2,Qt::RightButton, Qt::ControlModifier );
zmPress->setMousePattern(QwtEventPattern::MouseSelect3,Qt::RightButton );

我希望获得框选到的数据,如图:


我本来是希望通过信号
void selected (const QVector< QPointF > &pa)
A signal emitting the selected points, at the end of a selection.
这个信号,QwtPlotZoomer 和qwtplotpicker都有这个信号

代码如下
//picker
pkPress = new QwtPlotPicker(QwtPlot::xBottom, QwtPlot::yLeft,
QwtPlotPicker::CrossRubberBand, QwtPicker::AlwaysOn,
ui->plotPress->canvas());
pkPress->setStateMachine(new QwtPickerDragPointMachine());
pkPress->setRubberBandPen(QPen(QColor(255,200,150)));
pkPress->setTrackerPen(QColor(Qt::yellow));
//no
connect(this->zmPress,SIGNAL(selected(QVector<QPointF>)),this,SLOT(getSelectedPoint(QVector<QPointF>)));
connect(this->pkPress,SIGNAL(selected(QVector<QPointF>)),this,SLOT(getSelectedPoint(QVector<QPointF>)));
//ok
connect(this->zmPress,SIGNAL(zoomed(QRectF)),this,SLOT(getZommRectF(QRectF)));

我在plot中框选,zoomer和picker的selected(QVector<QPointF>)信号都不能收到。
但是zoomed(QRectF)收到了。
我还添加了这段代码。我猜测是可以指定选取方式,但还是没有用。
    
QwtPickerDragRectMachine *pm = new QwtPickerDragRectMachine();
pm->setState(QwtPickerMachine::RectSelection);
pkPress->setStateMachine(pm);//程序关闭后会引起崩溃
zmPress->setStateMachine(pm);


我的问题就是:
1.如何获得选取数据
2.为什么没有信号发出。zoomed这个有,但是selected没有,是我哪里缺少了关键代码?

求助各位用过qwt的达人


...全文
876 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vivididi111 2016-07-26
  • 打赏
  • 举报
回复
请问楼主你的selected和zoomed信号是怎么触发的呀
hell_fc 2015-07-17
  • 打赏
  • 举报
回复
不懂,不过可以看那些有缩放的例子,看他们的数据是怎么传递的?
caiwei_cs 2015-01-16
  • 打赏
  • 举报
回复
最后自己顶一次。
caiwei_cs 2015-01-14
  • 打赏
  • 举报
回复
自己顶一下咯

16,203

社区成员

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

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