Мне нужно заблокировать определенные c кнопки на MMI. Я реализовал функцию блокировки кнопок в подклассе QPushButton. Для этого я использовал сигнал clicked () и заблокировал кнопку с помощью blockSignals (true). Это означает, что при каждом нажатии кнопки на моем MMI всегда вызываются 2 СЛОТА.
Но при вызове блокировки определенной кнопки c я получаю первый СЛОТ (clicked ()) моего подкласса, в котором я заблокировать кнопку, затем я попадаю в исходный СЛОТ, связанный с этой кнопкой, который все еще вызывается, несмотря на блокировку (только в первый раз). Как я могу в своем подклассе QPushButton знать последующие слоты, связанные с этой кнопкой, и избегать их (удалять их)?
void QbtnStandardButton::slotButtonClicked(void)
{
if (modeProtection)
{
// Special mode to protect/unprotect the button
if (isProtected())
{
// Reset the protection
this->blockSignals(false);
}
else
{
// Set the protection: button will be unclickable
this->blockSignals(true);
}
modeProtection = false;
}
if (isProtected())
{
QMessageBox *pMsgBox = new QMessageBox(QMessageBox::Information,
"Protection",
"This button is protected!",
QMessageBox::Ok);
pMsgBox->exec();
pMsgBox->deleteLater();
// Here: remove subsequent SLOT of this button ?
}
}