كيو تي: كشف انقر نقرا مزدوجا فوق مع Modkey (التحول، CTRL، الخ)
-
20-09-2019 - |
سؤال
وكيف يمكنني الكشف عن ما إذا كان النقر المزدوج على 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);
وهتافات
لا تنتمي إلى StackOverflow