2016-08-25 1 views
0

У меня есть QDialog, который содержит несколько кнопок и QTextEdit. после того, как я написал что-то в QTextEdit, я нажимаю вкладку, чтобы перейти к одной из кнопок, но когда я нажимаю вкладку, в поле QTextEdit добавлено пространство вкладок. Как я могу изменить это поведение?Нажатие Tab в QTextEdit в диалоге - изменение поведения

Заранее спасибо

ответ

4

Вы можете использовать setTabChangesFocus метод QTextEdit:

yourTextEdit.setTabChangesFocus(true); 
+0

спасибо !!! это сработало. – kakush

0

Вы можете подклассы QTextEdit и переопределить keyPressEvent перехватить клавишу табуляции. Затем, с помощью nextInFocusChain для определения следующего фокуса виджета и вызвать setFocus на нем

Outline:

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); 
     } 
    } 
}; 
Смежные вопросы