奇怪的,双击/鼠标拖动将触发关键事件" CTRL-C"

时间:2012-02-29 14:04:15

标签: c++ qt qwidget

Qt似乎行为奇怪:当鼠标双击或拖动小部件时,它将触发Ctrl-C键事件。这是我的代码:

class CWidget: public QWidget
{
    Q_OBJECT

public:
    CWidget()
    {

    };
    virtual ~CWidget()
    {
    }

protected:
    void keyPressEvent ( QKeyEvent * event ) 
    {
        if (event->key() == Qt::Key_C && (event->modifiers() & Qt::ControlModifier))
        {
            qDebug() << "strange copy: Ctrl-C";
        }
        QWidget::keyPressEvent(event);
    }
}; // 

显示小部件后,您可以执行鼠标双击并在其上拖动,并打印调试消息“strange copy:Ctrl-C”。我已经在互联网上搜索了两天这个,但一无所获。

我使用它错了还是Qt的错误?

代码在(vs2008 + Qt Addin + Qt 4.7.3)和(qcreator + Qt 4.7.3),xp sp2

下测试

1 个答案:

答案 0 :(得分:0)

你必须检查:

!event->isAutoRepeat();