Я хочу знать, был ли в QLineEdit
щелчок. Так что я думаю, мне следует переопределить следующую функцию (??):
void QLineEdit::focusInEvent ( QFocusEvent * e ) [virtual protected]
Как мне это сделать?
Также, скажите, пожалуйста, как использовать функцию focusInEvent()
, чтобы узнать, получил ли фокус QLineEdit myEdit;
объект.
РЕДАКТИРОВАТЬ: Я написал следующую функцию:
bool LoginDialog::eventFilter(QObject *target, QEvent *event)
{
if (target == m_passwordLineEdit)
{
if (event->type() == QEvent::FocusIn)
{
if(checkCapsLock())
{
QMessageBox::about(this,"Caps Lock", "Your caps lock is ON!");
}
return true;
}
}
return QDialog::eventFilter(target, event);
}
И зарегистрировали m_passwordLineEdit
в LoginDialog
конструкторе класса следующим образом:
m_passwordLineEdit->installEventFilter(this);
И он попадает в бесконечный цикл MessageBox-ов. Пожалуйста, помогите мне разрешить эту ситуацию. На самом деле я хотел бы реализовать эту функцию с помощью всплывающего окна (не с QMessageBox
). Можно ли использовать QLabel
для этой необходимости?