2

私はQtでプログラミングしており、これを書いたイベントハンドラーの間に:

void PaintedTextBrowser::mouseMoveEvent(QMouseEvent *ev)
{
    ...
    QPoint *point = new QPoint(0, ev->pos.y());
    ...
}

そして、コンパイル時にエラーが発生します:

エラー: 'ev->QMouseEvent::pos' にはクラス タイプがありません

しかし、コードを次のように変更すると:

void PaintedTextBrowser::mouseMoveEvent(QMouseEvent *ev)
{
    ...
    QPoint pos = ev->pos();
    QPoint *point = new QPoint(0, pos.y());
    ...
}

それは正常に動作します。ここで欠けている概念は何ですか?

4

2 に答える 2

5

エラーはかなり明確です。実際QMouseEvent::posには、クラスではなく、への参照を返す関数QPointであるため、ドット演算子を使用することはできません。

私はあなたが書きたかったと思います:

QPoint *point = new QPoint(0, ev->pos().y());
//                                   ^^
//                     note the parentheses
于 2013-02-22T19:40:03.763 に答える
3

括弧がないようです:

void PaintedTextBrowser::mouseMoveEvent(QMouseEvent *ev)
{
    ...
    QPoint *point = new QPoint(0, ev->pos().y());
    //                                   ^^
    ...
}
于 2013-02-22T19:39:54.583 に答える