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

C++ 奇怪的是,双击/鼠标拖动将触发按键事件;CTRL-C";,c++,qt,qwidget,C++,Qt,Qwidget,Qt的行为似乎很奇怪:当鼠标双击或拖动小部件时,它会触发Ctrl-C键事件。这是我的密码: class CWidget: public QWidget { Q_OBJECT public: CWidget() { }; virtual ~CWidget() { } protected: void keyPressEvent ( QKeyEvent * event ) { if (event->k

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);
    }
}; // 
类CWidget:publicqwidget { Q_对象 公众: CWidget() { }; 虚拟~CWidget() { } 受保护的: 无效按键事件(QKeyEvent*事件) { if(event->key()==Qt::key_C&&(event->modifiers()&Qt::ControlModifier)) { qDebug()您必须检查:

!event->isAutoRepeat();
您必须检查:

!event->isAutoRepeat();

我遇到了同样的问题,并最终找出了原因。这是由于使用翻译软件造成的,例如“有道词典".

当您双击或拖动时,可能会在文本区域拾取一些文本,而翻译软件正在通过某种方式劫持该操作,并自动触发复制操作,以使拾取的文本自动进行翻译。这导致了这种奇怪的行为


如果翻译软件没有打开,这不可能发生在英语用户身上,也不可能重现问题。

我遇到了同样的问题,并最终找出了原因。这是由于使用翻译软件造成的,例如“有道词典“

当您双击或拖动时,可能会在文本区域拾取一些文本,而翻译软件正在通过某种方式劫持该操作,并自动触发复制操作,以使拾取的文本自动进行翻译。这导致了这种奇怪的行为


如果翻译软件没有打开,这不可能发生在英语用户身上,也不可能重现问题。

这解决了我的问题。我删除了这个狗屎字典软件。这解决了我的问题。我删除了这个狗屎字典软件。