我希望能够知道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-es的无限循环。请帮我解决这种情况。实际上,我想用弹出窗口(而不是QMessageBox
)来实现这个功能。可以满足QLabel
这种需求吗?