错误的含义是什么:'ev-> QMouseEvent :: pos'没有类类型

时间:2013-02-22 19:30:07

标签: c++

我在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());
    ...
}

它工作正常。我在这里缺少什么概念?

2 个答案:

答案 0 :(得分:5)

错误很明显,实际上 - QMouseEvent::pos不是一个类,it's a function返回对QPoint的引用,因此您不能在其上使用点运算符。

我想你想写:

QPoint *point = new QPoint(0, ev->pos().y());
//                                   ^^
//                     note the parentheses

答案 1 :(得分:3)

似乎你缺少括号:

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