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 に答える