我有这个代码:
bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
if (event->type() == QEvent::KeyPress)
{
if (keyEvent->key() == Qt::Key_Tab)
// do something
}
}
现在,我正在输入一个 QTextEdit。所以说我按了tab键。然后在 QTextEdit 中会出现一个选项卡。但是,如果我想防止这种情况发生怎么办?打个比方,如果你熟悉 emacs:在正确的环境中(比如 c++ 模式),你可以点击 tab,行会跳转到正确的位置(缩进)。再次点击选项卡后,没有任何反应。这是因为代码行在正确的位置。
这里有人知道怎么做吗?我想我可以让 tab 事件显示在 QTextEdit 中,然后删除以前的字符(或任何定义的字符)。