Qt数据实时绘制之双击放大单一通道

来源:互联网 发布:烟台鼎鸿网络拖欠工资 编辑:程序博客网 时间:2024/06/09 19:34

目的:

由于目前采用的是32通道,绘制的同时已经使得界面有些拥挤。这就使得对单一通道数据的观察有些乏力。所以,采用了双击一个图表,放大显示的方法来暂时解决。


效果:

  • 双击任何一个图表,都会放大为一个大的dialog进行显示。双击dialog进行关闭。



实现

思路:

  • qwtplot并不能通过鼠标事件获取widget的方法来获得所选是哪一个。
  • 根据鼠标获取相对的坐标,再者窗口按照QGridLayout排列,所以直接计算得出选择的是哪一个图表。

代码:

/** * @brief DisWindow::mouseDoubleClickEvent * @param e * 鼠标双击事件,用于进行单通道的详细显示 */void DisWindow::mouseDoubleClickEvent(QMouseEvent *e){    int mouse_x = e->pos().x();//获得鼠标相对窗体的点击坐标    int mouse_y = e->pos().y();    //    qDebug()<<"mouse_x--> "<<mouse_x;    //    qDebug()<<"mouse_y--> "<<mouse_y;    QWidget *cw = ui->centralwidget;    int cw_w = cw->width();//获取窗体的整体宽度和高度    int cw_h = cw->height();    //    qDebug()<<"cw_w--> "<<cw_w;    //    qDebug()<<"cw_h--> "<<cw_h;    int interval_x = cw_w/numofline;//计算得出选择的是哪一个    int interval_y = cw_h/(chooseNum/numofline);    dialogChannelNum = mouse_x/interval_x+mouse_y/interval_y*numofline;//主要就是确定是哪一个通道    //    qDebug()<<"click num--> "<<dialogChannelNum<<endl;    Dialog *dig = new Dialog;    dig->show();    connect(updateqwt,SIGNAL(senddata2Dialog()),dig,SLOT(receiveData()));}

本人只是初学者,关于程序的一切问题,欢迎交流留言。
1 0
原创粉丝点击