QCustomPlot - 在 QCPAxisRect 上显示 customPlot 下方的项目

2024-04-10

在一个类似的项目中QCustomPlot 财务演示 http://qcustomplot.com/index.php/demos/financialchartsdemo我不仅想在图表区域中绘制一个 QCPItemRect,还想在图表下方的区域中绘制一个 QCPItemRect。

Having

QCPAxisRect *   xRect = new QCPAxisRect( this->ui.customPlot )
...
this->ui.customPlot->plotLayout()->addElement(1, 0, xRect);          

我想添加 QCPItemRect 像

QCPItemRect *    xItem = new QCPItemRect( this->ui.customPlot );
                 xItem -> setPen   ( QPen ( Qt::black ));

                 xItem -> bottomRight ->setAxisRect( this->xRect );
                 xItem -> topLeft     ->setAxisRect( this->xRect );

                 xItem -> bottomRight ->setCoords(x - 2.0, y - 2.0);
                 xItem -> topLeft     ->setCoords(x + 2.0, y + 2.0);

                 this->ui.customPlot->addItem( xItem );

然而,矩形仍然被绘制到this->ui.customPlot相对于this->xRect. Why?

任何帮助深表感谢, 丹尼尔

UPDATE我自己找到了答案的一部分,缺少一行代码是

xItem -> setClipAxisRect( xRect )

仍然仅适用于某些 QCPAxisRect。

UPDATE 2还是不在那儿。以下是重现该行为的最小代码片段 - 足以将其粘贴到空的 QCustomPlot 项目中:

// create a rectAxis, put it below the main plot
QCPAxisRect *   xRect = new QCPAxisRect( this->ui.customPlot );
                this->ui.customPlot->plotLayout()->addElement( 1, 0, xRect );

// create a rectItem and show it on the xRect    
QCPItemRect *   xRectItem = new QCPItemRect( this->ui.customPlot );

                xRectItem->setVisible          (true);
                xRectItem->setPen              (QPen(Qt::transparent));
                xRectItem->setBrush            (QBrush(Qt::lightGray));

                xRectItem->topLeft     ->setType(QCPItemPosition::ptPlotCoords);
                xRectItem->topLeft     ->setAxisRect( xRect );
                xRectItem->topLeft     ->setCoords( 1, 4 );

                xRectItem->bottomRight ->setType(QCPItemPosition::ptPlotCoords);
                xRectItem->bottomRight ->setAxisRect( xRect );
                xRectItem->bottomRight ->setCoords( 2, 1 );

                xRectItem->setClipAxisRect     ( xRect );
                xRectItem->setClipToAxisRect   ( false );       // XXX

                this->ui.customPlot->replot();[/code]

该行为取决于“XXX”行是否被注释掉

  1. 行注释掉 - 矩形根本不会出现。
  2. line left in - 矩形被绘制到主矩形中,如图所示here https://www.dropbox.com/s/rp8ouphbvfcjxyn/qcustomplot_axisRect.GIF?dl=0.

非常感谢任何提示, 丹尼尔


找到了答案(感谢QCustomPlot的作者)。缺少的组件是

  1. 设置矩形的clipAxisRect(已包含在问题的最后更新中)
  2. 设置矩形所遵循的轴。

具体来说,

 xRectItem->setClipAxisRect     ( xRect );

and

 xRectItem->topLeft     ->setAxes( xRect->axis(QCPAxis::atBottom), xRect->axis(QCPAxis::atLeft) );
 xRectItem->bottomRight ->setAxes( xRect->axis(QCPAxis::atBottom), xRect->axis(QCPAxis::atLeft) );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QCustomPlot - 在 QCPAxisRect 上显示 customPlot 下方的项目 的相关文章

  • 在 C# 中使用“using”关键字避免多次处置的最佳实践

    当变量是 IDisposable 时 我们有using关键字来管理处置 但是如果我们在方法中返回值怎么办 using twice StringContent stringToStringContent string str using St
  • 是否可以从 C++ 应用程序调用 C# 应用程序?

    我是一名编程学生 现在我已经上了两门 C 课程 这个学期我将参加我的第一门 C 课程 出于好奇 是否可以从 C 应用程序调用 C 应用程序 如果是的话 是否还可以检查运行该程序的计算机是否具有 NET框架 我只是很好奇 我想如果可能的话 这
  • 无法将 std::min 传递给函数,std::min 的副本有效

    Passing std min函数无法编译 我复制了 libcpp 声明std min进入我的源文件并且它可以工作 std 版本有什么问题 clang 和 gcc 也会发生同样的情况 在 Godbolt 上测试 https godbolt
  • 并行化斐波那契序列生成器

    我正在学习并行化 在一项练习中 我得到了一些我应该提高性能的算法 其中之一是斐波那契数列生成器 array 0 0 array 1 1 for q 2 q lt MAX q array q array q 1 array q 2 我怀疑 这
  • 异常堆栈跟踪不显示抛出异常的位置

    通常 当我抛出异常 捕获它并打印出堆栈跟踪时 我会看到抛出异常的调用 导致该异常的调用 导致该异常的调用that 依此类推回到整个程序的根 现在它只向我显示异常所在的调用caught 而不是它所在的地方thrown 我不明白是什么改变导致了
  • 将 OpenCV Mat 转换为数组(可能是 NSArray)

    我的 C C 技能很生疏 OpenCV 的文档也相当晦涩难懂 有没有办法获得cv Mat data属性转换为数组 NSArray 我想将其序列化为 JSON 我知道我可以使用 FileStorage 实用程序转换为 YAML XML 但这不
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 将设置函数(setter)标记为 constexpr 的目的是什么? [复制]

    这个问题在这里已经有答案了 我无法理解将 setter 函数标记为的目的constexpr 自 C 14 起这是允许的 我的误解来自以下情况 我使用 constexpr c tor 声明一个类 并且我将通过创建该类的 constexpr 实
  • 将下拉列表与字典绑定

    我将字典绑定到下拉列表 举例来说 我的字典中有以下项目 Test1 123 Test2 321 我希望下拉文本采用以下格式 Test1 Count 123 Test2 Count 321 我沿着以下路径走 但没有运气 MyDropDown
  • 如何使用 Roslyn 通过扩展方法、静态类中的方法以及带有 ref/out 参数的方法来访问调用

    我正在致力于创建一个开源项目 用于创建 NET UML 序列图 该项目利用名为 js sequence diagrams 的 javascript 库 我不确定 Roslyn 是适合这项工作的工具 但我想我应该尝试一下 所以我整理了一些概念
  • 如何在win32中使用GetSaveFileName保存文件?

    我编写此代码是为了获取 fileName 来保存我的文件 include stdafx h include
  • 通过 C# Mailkit / Mimekit 发送电子邮件,但出现服务器证书错误

    Visual Studio 2015 中的 0 代码 1 我正在使用 Mailkit 最新版本 1 18 1 1 从我自己的电子邮件服务器发送电子邮件 2 电子邮件服务器具有不受信任的自签名证书 3 我在代码中添加了以下两行 以忽略服务器证
  • 无法为 wsdl 文件创建服务引用

    I have wsdl文件和xsd我本地机器上的文件 我想在项目中添加服务引用 我没有网络服务 我只有wsdl file 我收到以下错误 The document was understood but it could not be pro
  • 将错误代码映射到 C++ 中的字符串

    将错误代码从枚举映射到字符串的更有效方法是什么 在 C 中 例如 现在我正在做这样的事情 std string ErrorCodeToString enum errorCode switch errorCode case ERROR ONE
  • C++ 到 C# 事件处理

    所以我有我的C WinForm 应用程序 我从中调用我的C CLI MFC dll图书馆 但也有一些events在我的 C 库上 甚至此事件也发生在该库的本机 非 CLI 部分 我需要从我的 C 应用程序调用一些代码 并获取一些有关此事件的
  • 为什么 f(i = -1, i = -1) 是未定义的行为?

    我正在读关于违反评估顺序 http en cppreference com w cpp language eval order 他们举了一个令我困惑的例子 1 如果标量对象上的副作用相对于同一标量对象上的另一个副作用是无序的 则行为未定义
  • 使用 xslt 将 xml 转换为 xsl-fo 时动态创建超链接?

    我想使用 xsl 文件在 PDF 报告中创建标题 如果源文件包含超链接 则应将其呈现为超链接 否则呈现为纯文本 例如 我的 xml 如下所示 a href http google com target blank This is the h
  • C 中使用 getrandom 实现随机浮点数

    我试图生成一个介于 0 和 1 之间的随机浮点数 无论是在 0 1 还是 0 1 对我来说都不重要 网上关于此的每个问题似乎都涉及rand 呼叫 播种time NULL 但我希望能够每秒多次调用我的程序 并每次都获得不同的随机数 这引导我找
  • Autoconf 问题:“错误:C 编译器无法创建可执行文件”

    我正在尝试使用 GNU 自动工具构建一个用 C 编写的程序 但显然我设置错误 因为当configure运行 它吐出 configure error C compiler cannot create executables 如果我看进去con
  • “必须声明标量变量”错误[重复]

    这个问题在这里已经有答案了 必须声明标量变量 Id SqlConnection con new SqlConnection connectionstring con Open SqlCommand cmd new SqlCommand cm

随机推荐

  • 如何在开发环境中使用 MobileIron 的 Web@Work 进行测试?

    我有一个可以在任何浏览器中完美运行的网站 现在我想使用 MobileIron 的 Web Work 浏览器将该网站用作书签 以创建一个通过 MobileIron 打包的基本 iOS 应用程序 Web Work的基本介绍在这里 https w
  • java标准序列化顺序

    我想知道以下示例类的属性将按什么顺序序列化 public class Example implements Serializable private static final long serialVersionUID 8845294179
  • 底层提供商无法打开

    HI 我正在使用 VS2010 并使用 Microsoft Entity Framework 4 0 我正在开发一个 Windows 应用程序 我在我的应用程序中绑定了几个组合 工作正常 void BindNatureOfIndustryC
  • 为什么我的 javascript getter/setter 需要下划线?

    执行 Get 或 Put 操作a抛出一个 RangeError 指出Maximum call stack size exceeded指向this a在吸气剂和 在设置器中 let someObject get a return this a
  • apollo graphql 架构 React-admin 初学者

    这些技术是全新的 到目前为止我所看到的让我非常兴奋 我很难找到我所坚持的东西的例子 React admin 的文档建议我的模式说 Posts 遵循 allPosts 和 allPostsMeta allPosts 部分工作没有问题 但自然
  • 如何从自定义视图中访问layout_height?

    我有一个自定义视图 我只是希望访问 xml 布局值layout height 我目前正在获取该信息并将其存储在 onMeasure 期间 但这仅在首次绘制视图时发生 我的视图是 XY 图 它需要尽早知道其高度 以便可以开始执行计算 该视图位
  • 悬停在父 div 上时更改子 div 的背景颜色吗? [复制]

    这个问题在这里已经有答案了 我想在父 div 悬停时更改子 div 的背景颜色 目前 我可以更改颜色 但只能将鼠标悬停在子 div 上 但是 我也想更改父 div 悬停时的颜色 div class content div class log
  • 如何使用 Selenium Safari Webdriver

    我正在尝试使用 Safari WebDriver 并且按照说明进行操作here https code google com p selenium wiki SafariDriverInternals构建 Safari 驱动程序 但现在我不知
  • 稍后如何在 SwiftUI 中访问内容视图的元素?

    假设我有一个像这样的内容视图 struct ContentView View State private var selection 0 var body some View TabView selection selection Cust
  • 不确定 openmp 循环中应该共享或私有什么

    我有一个更新矩阵 A 的循环 我想将其设为 openmp 但我不确定哪些变量应该共享和私有 我本以为只有 ii 和 jj 就可以工作 但事实并非如此 我想我也需要在某个地方进行 OMP ATOMIC UPDATE 该循环仅计算 N 和 N
  • 为什么我收到“参数从未使用过 [E0392]”?

    我正在尝试用 Rust 实现八叉树 八叉树在类型上是通用的 但有一个约束 即它应该实现通用特征 pub trait Generable u fn generate children self data U gt Vec u
  • QGraphicsItem移动事件-获取绝对位置

    我有一个QGraphicsEllipseItem我想要移动并在移动时触发信号 所以我子类化了QGraphicsEllipseItem and QObject并覆盖了itemChange方法来触发信号 这一切似乎都有效 但报告的位置似乎与该项
  • TWA - 数字资产链接正常,但地址栏仍然可见

    我开发了一个渐进式 Web 应用程序 我想将其作为可信 Web 活动在 Play 商店中发布 它是https www bagnoadriatico it https www bagnoadriatico it 遵循本指南https deve
  • 后退按钮文本没有改变

    对于我的视图控制器之一 扩展 UITableViewController 我需要将其后退按钮文本配置为 后退 但后退按钮仍然显示父视图控制器的标题 默认 void viewDidLoad self navigationItem backBa
  • Windows 编译器上的 timespec

    在 posix 上 可以使用 timespec 来计算准确的时间长度 如秒和毫秒 不幸的是 我需要使用 Visual Studio 编译器迁移到 Windows VS time h 库没有声明 timespec 所以我正在寻找其他选项 就搜
  • 企业库验证块的 Asp.Net MVC 2 客户端验证实现

    我找到了一个非常好的文章 http bradwilson typepad com blog 2009 10 enterprise library validation example for aspnet mvc 2 html关于如何在 M
  • TCP 代理:在后端不可用时保持连接

    在 Docker 设置的上下文中 我想使用类似大使的模式来允许某些容器 例如数据库服务器 正常重新启动 而不必重新启动所有依赖的容器 例如 Web 服务器 并且没有错误消息 因为 数据库服务器不可用 因此 我想知道 是否有一个 TCP 代理
  • Android - 在运行时更改自定义标题视图

    我在应用程序中为每个活动使用自定义标题视图 在其中一项活动中 根据按钮点击 我需要更改自定义标题视图 现在 每次我调用 setFeatureInt 时 这都可以正常工作 但是 如果我尝试更新自定义标题中的任何项目 例如更改标题上的按钮文本或
  • Swift 3 需要更多信息来推断参数?

    我有一个向上冒泡的延伸部分 但在 Swift 3 中 无法推断通用参数 T public extension UIResponder public func next
  • QCustomPlot - 在 QCPAxisRect 上显示 customPlot 下方的项目

    在一个类似的项目中QCustomPlot 财务演示 http qcustomplot com index php demos financialchartsdemo我不仅想在图表区域中绘制一个 QCPItemRect 还想在图表下方的区域中