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 回答