问题描述
当我在QLineEdit中键入tab时,我转到下一个小部件。如何禁用此行为并在QLineEdit框中键入TAB字符?
解决方法
您需要通过手柄检查按键:
bool MainWindow::eventFilter(QObject *obj,QEvent *event)
{
if (obj == m_lineEdit)
{
if (event->type() == QEvent::KeyPress)
{
QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
if (keyEvent->key() == Qt::Key_Tab)
{
//do here
return true;
}
}
//return event to the parent class
return QMainWindow::eventFilter(obj,event);
}
或者您可以创建继承自QLineEdit的类并重载该方法:
void LineEdit::keyPressEvent(QKeyEvent* event)
{
if (keyEvent->key() == Qt::Key_Tab)
{
emit tabPressed();
return;
}
QLineEdit::keyPressEvent(event);
}