我想知道是否在QLineEdit
一声点击。所以我想我应该重新实现以下函数(??):
void QLineEdit::focusInEvent ( QFocusEvent * e ) [virtual protected]
我该怎么做呢?
另外请告诉我如何使用focusInEvent()
函数以便知道是否QLineEdit myEdit;
对象获得焦点。
EDIT:我写了以下函数:
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
in LoginDialog
类构造函数如下:
m_passwordLineEdit->installEventFilter(this);
它陷入了 MessageBox-es 的无限循环。请帮助我解决这种情况。实际上我想用弹出窗口来实现这个功能(而不是用QMessageBox
)。可以使用吗QLabel
为了那个需要?
另外请告诉我如何使用
focusInEvent() 函数以便
知道 QLineEdit myEdit;对象得到
重点。
您应该将自己连接到以下 SIGNAL :
void QApplication::focusChanged ( QWidget * old, QWidget * now ) [signal]
当新的 QWidget 是您的 QLineEdit 时,您知道它获得了焦点!
希望能帮助到你 !
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)