在上一篇文章《基本绘图》中,这部电影继续描述用户互动,元素和QT中的一些特殊用法。
  Qcustomplot提供了各种构建的用户交互。它们可以大致分为:
//添加箭头:qcpitemline *arrow = new qcpitemline(customplot);箭头 - > start-> setParentanchor(textLabel-> bost);x-y-plot坐标箭头 - > sethead(qcplineending :: esspikearrow)中的箭头 - > end-> ttcoords(4,1.6); 1.6);
  在此通话之后,我们可以开始插入文本文档中。这是静态方法的优点qcpdocumentObject :: generatePlotFormat(qcustosplot *plot *plot,int width,int高度)。它使用给定的宽度和高度(如果保留它是保留的AS 0,绘图的当前宽度和高度)获取图形的矢量化快照并将其连接到QTEXTCHARFORMAT。返回的QTEXTCHARFORMAT可用于格式化QChar :: ObjectReplacementCharacter,后来显示为图形对象。可以将图形插入当前光标位置,如下所示:
  组件cbusecurrentsize,sbwidth和sbheight是示例项目的用户界面的一部分。如上所述,文本文档中的绘图对象保持其矢量化的性质。因此,将其导出到PDF(或其他可以向量矢量内容)可以可以获取最高质量的输出。将上述文档作为PDF文件,然后在PDF查看器中打开。以下将显示以下    您会看到放大插入的图形可以显示平滑的线条。
  尽管控制轴范围的最直观方法是拖动变焦机制,但它也可能需要为此提供滚动条。这可以由信号和插槽实现,以连接到滚动条。滚动条的值需要一个中间凹槽。  示例项目称为滚动轴轴范围控制,这是完整下载软件包的一部分。  
  传播和更改滚动条和轴之间转换的相关信号是qscrolllbar :: valuechanged(int)和qcpaxis :: rangechanged(qcprange)。发出轴,必须更新滚动滑块的位置和大小。  QSCrollbar基于Integer。因此,我们需要一个将整数滚动条转换为轴的因素。例如,如果您想平滑地在坐标范围5和5之间滚动轴,我们可以将因子设置为0.01(滚动条将在100时卸下,因此滚动条的范围为-500,500。
  如果可以访问的访问范围在任何时候更改,则只需更改滚动条的最大/最小值即可。坐标转换的中间插槽称为HorzscrollBarchanged,vertscrollbarchanged,XaxisChanged,xaxisChanged和yaxisSchanged。滚动条和X-/Y轴:
  这两种类型的插槽(轴范围为滚动条和滚动条到轴范围)非常简单。它们每个都能获得滚动条或滚杆的变更值,应用转换并将结果设置为轴或滚动条。这些插槽用于在移动滚动条滑块时更新轴范围:
  首先,我们在这里看到滚动条从100.0卸下到轴坐标。请注意:
  对于印刷轴,情况恰恰相反。这就是为什么在包含垂直滚动条的表达式中添加减数字的原因,例如设置Yaxis范围时。  条件qabs(ui-> plot-> xaxis-> range()。center()-Value/100.0)> 0.01是必要的,因此在此范围内拖动不会引起双触发器,这是变化信号和信号和一个信号和一个信号信号和一个信号。在插槽之间来回指示。这可能是因为qcustplot将自动打印自身并发出拖动轴范围的信号。在此应用程序中,rangechanged信号将调用XaxisShanged或yaxisischanged,yaxisschanged,yaxisChanged,yaxischanganged,或它通过调用滚动条的setValue方法来更新滚动条滑块的位置。此方法发射了滚动条的有价值信号,该信号已连接到上方的插槽。。更新。  当轴范围更改时,滚动条的插槽:
  此示例演示了qcustplot的项目系统的更高级用法。创建一个新的小型Axistag,该类别管理一组项目,这些项目形成带有轴的标记并突出显示轴。  为了在主应用程序中显示它,在轴速率的右侧创建了两个轴,并给出了两个相应的标记,以指示两个连续更新图形的右侧的点数据点。 示例项目称为轴标签示例,这是完整下载软件包的一部分:  
  上面的屏幕截图中看到的标记由两个可见的项目组成:qcpitemtext,它为我们提供了矩形边框形式的当前坐标;箭头的形状向左侧指向左侧。&emsp。 但是,还有另一个无形的项目可以帮助定位标签。qcpitemtracer处于右轴矩形边界的相应值坐标高度(内轴中的水平位置)。它为其他项目提供了主要的父亲锚点并且向下移动跟踪器将在整个标记上上下移动。  在主窗口代码中犯错误和样式很容易,样式也不好。因此,已经创建了一个新的Axistag来设置和处理这三个项目。以下是Axistag类的头部代码:
  为了清楚此示例,该界面保持在最小化。在现实世界中,用户可能需要更多的自定义和此类的其他功能,例如,概括以支持其他轴向。  下一个代码段是实现Axistag类。在其建设性功能中,以下锚和儿子之间的关系是在这三个项目之间建立的。Blue和Blue Circles指示QCPITEMTRACER位置,QCPITEMLINE END/启动位置,以及QCPITEMTEXT。;   您可以找到相关代码段的说明:
  现在,主应用程序使用此新的Axistag类来避免直接的项目操作,所有操作均在Axistag实例中进行处理。  这是MainWindow类的标题。在以前,您可以在内部注射的解释中找到解释:
  最后,MainWindow类的实现。它基本上设置了两个Y轴,右侧的两个图形和两个轴标记。TimerSlot()由qtimer重复调用。标记通过Axistag :: UpdatePosition方法更新。
上一篇:“ qcustplot开发注释(1):qcustplot的简介,下载和基本图纸”下一步:请期待...
如果本文是原始文章,请指出原始文章。