4

我正在使用 Ubuntu 11.10、Qt 4、Qwt 6.0.1

问题是,通常一切正常,来自 Qwt 的示例编译没有任何问题,但是当我尝试从 QPointF.x 转换为 double 时出现错误。有趣的是(在 x86 上)qreal 应该是对 double 的重新定义......

这是不起作用的(

QPointF pt;
pt.setX(1.0);
pt.setY(2.0);
double px=pt.x;

编译器返回错误:

error: argument of type ‘qreal (QPointF::)()const {aka double (QPointF::)()const}’ does not match ‘double’

我在做傻事吗?

简而言之:

我需要将其转换为在继承自 QwtSeriesData 的类中使用,以在点之间进行自定义插值(在这种情况下,它不会是简单的线性插值)。为此我需要方法

double y(double x) const

这将返回给定 x 的函数值

当我简化它以使用它编译的 QwtSeriesData 时。为此,只需实施

QPointF sample(size_t i) const
size_t size() const

但正如我所说,我需要自定义插值,所以实现从 QwtSyntheticPointData 继承的接口似乎是最好的选择。

4

1 回答 1

9

QPointF 是一个类(不是结构),QPointF::x()是一个方法,而不是公共成员。尝试:

double px = pt.x();
于 2012-05-28T08:43:33.460 回答