按对话框中的QTextEdit中的Tab键 - 更改行为

时间:2016-08-25 13:20:59

标签: qt qt4 qtextedit qdialog

我的QDialog包含几个按钮和一个QTextEdit。 在QTextEdit中写一些内容之后,我按Tab键以进入其中一个按钮,但是当我按Tab键时,QTextEdit会添加一个标签空间。我该如何改变这种行为?

提前致谢

2 个答案:

答案 0 :(得分:6)

您可以使用QTextEdit的{​​{3}}方法:

yourTextEdit.setTabChangesFocus(true);

答案 1 :(得分:0)

您可以继承QTextEdit并覆盖keyPressEvent以拦截Tab键。然后,使用nextInFocusChain确定下一个焦点窗口小部件并在其上调用setFocus

概要

class MyTextEdit : public QTextEdit
{
public:
    MyTextEdit(QWidget *parent = 0) : QTextEdit(parent) {}

protected:
    void keyPressEvent(QKeyEvent *e) {
        if (e->key() == Qt::Key_Tab) {
            nextInFocusChain()->setFocus(Qt::TabFocusReason);
        } else {
            QTextEdit::keyPressEvent(e);
        }
    }
};