我的QDialog
包含几个按钮和一个QTextEdit
。
在QTextEdit
中写一些内容之后,我按Tab键以进入其中一个按钮,但是当我按Tab键时,QTextEdit
会添加一个标签空间。我该如何改变这种行为?
提前致谢
答案 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);
}
}
};