1

QMouseEvent存储鼠标位置的整数值。但是,它有一个保护成员“s”,它存储鼠标位置的浮点值。如何获得浮点值?

我曾尝试继承QMouseEvent,但不幸的是我一直收到此错误消息。

错误:C2511:“QMouseEventF::QMouseEventF(QWidget *)”:在“QMouseEventF”中找不到重载的成员函数

这是我的头文件:

#ifndef QMOUSEEVENTF_H
#define QMOUSEEVENTF_H

#include<QMouseEvent>

class QMouseEventF : QMouseEvent
{
    Q_OBJECT

    public:
    QMouseEventF(QObject* parent = 0);

    ~QMouseEventF();
    qreal GetX();

};

#endif // QMOUSEEVENTF_H

这是继承的类:

#include "qmouseeventf.h"


QMouseEventF::QMouseEventF(QWidget *parent ): QMouseEvent(parent)
{

}


QMouseEventF::~QMouseEventF()
{

}


qreal QMouseEventF::GetX()
{
    return this->s.rx();
}
4

1 回答 1

1

一方面,您在头文件和源文件之间有不同的签名,因为头构造函数与源构造函数不同。QMouseEvent 不继承自 QObject 或 QWidget。

其次,QMouseEvent 不使用 QWidget * 作为构造函数。

第三,头文件中不需要 Q_OBJECT 宏。

这些是代码正确的原因。要回答您最初的问题,使用浮点值是没有意义的,因为整数值是鼠标事件对像素坐标进行操作的值。如果您需要将其转换为浮点数,请自己通过强制转换来完成。

于 2015-04-13T19:24:03.663 回答