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);
}
}; //
После того, как виджет будет показан, вы можете дважды щелкнуть мышью и перетащить его, и будет напечатано отладочное сообщение «странная копия: Ctrl-C». Два дня копался в интернете по этому поводу, ничего не нашел.
Я использовал это неправильно или это ошибка Qt?
Код протестирован под (vs2008 + Qt Addin + Qt 4.7.3) и (qcreator + Qt 4.7.3), xp sp2