在Qt/E中使用usb鼠标,鼠标的移动正常,但想使用鼠标滚轮时,出现如下warning:
unknown mouse event type=2, code=8, value=0xffffffff
 
 
在qt源码中查看了下,相关代码如下:
qt-everywhere-opensource-src-4.6.0\src\gui\embedded\qmouselinuxinput_qws.cpp
 
 
 
for (int i = 0; i < n; ++i) {
        struct ::input_event *data = &buffer;
 
 
        bool unknown = false;
        if (data->type == EV_ABS) {
            if (data->code == ABS_X) {
                m_x = data->value;
            } else if (data->code == ABS_Y) {
                m_y = data->value;
            } else {
                unknown = true;
            }
        } else if (data->type == EV_REL) {
            if (data->code == REL_X) {
                m_x += data->value;
            } else if (data->code == REL_Y) {
                m_y += data->value;
            } else {
                unknown = true;
            }
        } else if (data->type == EV_KEY && data->code == BTN_TOUCH) {
            m_buttons = data->value ? Qt::LeftButton : 0;
        } else if (data->type == EV_KEY) {
            int button = 0;
            switch (data->code) {
            case BTN_LEFT: button = Qt::LeftButton; break;
            case BTN_MIDDLE: button = Qt::MidButton; break;
            case BTN_RIGHT: button = Qt::RightButton; break;
            }
            if (data->value)
                m_buttons |= button;
            else
                m_buttons &= ~button;
        } else if (data->type == EV_SYN && data->code == SYN_REPORT) {
            QPoint pos(m_x, m_y);
            pos = m_handler->transform(pos);
            m_handler->limitToScreen(pos);
            m_handler->mouseChanged(pos, m_buttons);
        } else if (data->type == EV_MSC && data->code == MSC_SCAN) {
            // kernel encountered an unmapped key - just ignore it
            continue;
        } else {
            unknown = true;
        }
        if (unknown) {
            qWarning("unknown mouse event type=%x, code=%x, value=%x", data->type, data->code, data->value);
        }
    }
 
 
注意红色部分。
在linux中,EV_REL为2(表示相对坐标事件), REL_WHEEL为8,(表示鼠标滚轮事件)
从代码与warining的信息看,似乎Qt/E似乎是不支持鼠标滚轮的。
想问问大家的Qt/E上是否能使用usb鼠标滚轮?
使用的是qt 4.7.3