2012-02-29 5 views
1

Qtは動作が不思議です。マウスをダブルクリックするかウィジェットをドラッグすると、Ctrl-Cキーイベントが発生します。ウィジェットが表示されたら、マウスのダブルクリックを実行し、その上に周りにドラッグすることができます奇妙なダブルクリック/マウスドラッグは、キーイベント "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); 
    } 
}; // 

、およびデバッグメッセージ「奇妙なコピー:Ctrlキーを押しながらCは、」ここに私のコードがある印刷されます。私はこれについて2日間インターネット上で検索しており、何も見つかりませんでした。

私は間違って使いましたか、それともQtのバグですか?

コードは(VS2008 + Qtのアドイン+のQt 4.7.3)と(qcreator + Qtの4.7.3)の下でテストされ、XP SP2

答えて

0

かを確認する必要があります。

!event->isAutoRepeat(); 
-1

を私が会いました同じ問題を抱え、最終的になぜか分かりました。 「有道词典」などの翻訳ソフトウェアを使用することによって発生します。

ダブルクリックまたはドラッグすると、テキストエリア内のテキストを取得する可能性が高くなります。翻訳ソフトウェアは何らかの手段でその操作をハイジャックし、選択したテキストを翻訳するように自動的にトリガーしますそれは自動的に。これはこの奇妙な動作を引き起こした。

翻訳ソフトウェアが開いていないと、これは英語ユーザーでは起こりそうになく、問題を再現することはまずありません。

関連する問題