كيو تي: كشف انقر نقرا مزدوجا فوق مع Modkey (التحول، CTRL، الخ)

StackOverflow https://stackoverflow.com/questions/2252335

سؤال

وكيف يمكنني الكشف عن ما إذا كان النقر المزدوج على QWidget (QStatusBar، في حالتي) حدث حين عقدت مفتاح التعديل أسفل؟

ويمكنني الزائد void QWidget::mouseDoubleClickEvent ( QMouseEvent * event ) للحصول على انقر مرتين، ولكن كيف يمكنني التأكد ما إذا كانت تتلقى القطعة الأحداث الرئيسية عندما أنه قد لا يكون التركيز؟

هل كانت مفيدة؟

المحلول

ولقد وجدت الجواب:

ومشتق من QMouseEvent QInputEvent والذي يحتوي على طريقة تسمى modifiers():

كيو تي الوثائق :

<اقتباس فقرة>   

وإرجاع الأعلام لوحة المفاتيح التعديل الذي كان قائما على الفور قبل وقوع الحدث.

نصائح أخرى

إذا كان لديك فتحة لجهودكم (ماوس) الحدث أو الإشارة، يمكنك اختبار المعدلات هناك:

Qt::KeyboardModifiers modifiers  = QApplication::queryKeyboardModifiers ();
if(modifiers.testFlag( Qt::ControlModifier )){
  qDebug() << "CTRL was hold when this function was called";
}
else{
  qDebug() << "CTRL wasn't hold";
}

//SHIFT    = Qt::ShiftModifier
//CTRL     = Qt::ControlModifier
//ALT      = Qt::AltModifier 

وفقط لإضافة المزيد من المعلومات في QWidget الخاص بك تحتاج فقط لتجاوز هذه الطريقة

protected:
    void mouseDoubleClickEvent(QMouseEvent *event);

وهتافات

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top