我在Qt中进行编程,并且在事件处理程序之间编写了以下代码:

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

而且我得到编译错误:



但是当我将代码修改为:
void PaintedTextBrowser::mouseMoveEvent(QMouseEvent *ev)
{
    ...
    QPoint pos = ev->pos();
    QPoint *point = new QPoint(0, pos.y());
    ...
}

它工作正常。我在这里想念的概念是什么?

最佳答案

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

我想你想写:

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

关于c++ - 错误的含义是什么: 'ev->QMouseEvent::pos'没有类类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15031809/

10-15 19:20