Qt 是否使QLineEdit检测选项卡按键事件?
我在文件里找不到任何东西。我找到了一个使用PyQt之类的解决方案,但我不想使用它。另外,如果有一个信号的话会很好,但是看起来没有。您应该能够使用Qt 是否使QLineEdit检测选项卡按键事件?,qt,Qt,我在文件里找不到任何东西。我找到了一个使用PyQt之类的解决方案,但我不想使用它。另外,如果有一个信号的话会很好,但是看起来没有。您应该能够使用QObject::installEventFilter(QObject*)截获按键事件。这里有一个例子:。您应该能够使用QObject::installEventFilter(QObject*)截取按键事件。这里有一个例子:.1.当您按照Sam的建议安装事件过滤器(m\u lineEdit->installEventFilter(this);)时,您需要
QObject::installEventFilter(QObject*)
截获按键事件。这里有一个例子:。您应该能够使用QObject::installEventFilter(QObject*)
截取按键事件。这里有一个例子:.1.当您按照Sam的建议安装事件过滤器(m\u lineEdit->installEventFilter(this);
)时,您需要处理QEvent::KeyPress
并检查键是否相等Qt::key\u选项卡
:
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 what you need;
return true;
}
}
// pass the event on to the parent class
return QMainWindow::eventFilter(obj, event);
}
1.当您按照Sam建议安装事件筛选器时(
m_lineEdit->installEventFilter(this);
),您需要处理QEvent::KeyPress
,并检查键是否相等Qt::key_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 what you need;
return true;
}
}
// pass the event on to the parent class
return QMainWindow::eventFilter(obj, event);
}