2016-08-25 14 views
0

QDialogにはボタンが少なく、QTextEditがあります。 QTextEditに何かを書き込んだ後、タブを押すとタブの1つに移動しますが、タブを押すと、タブスペースがQTextEditに追加されます。この動作を変更するにはどうすればよいですか?あなたはQTextEditをサブクラス化し、Tabキーを傍受するkeyPressEventを上書きすることができ、事前ダイアログのQTextEditでタブを押す - 変更の振る舞い

答えて

4

yourTextEdit.setTabChangesFocus(true); 
+0

はあなたに感謝を!出来た。 – kakush

0

感謝。そして、次のフォーカスウィジェットを決定し、それにsetFocusを呼び出すためにnextInFocusChainを使用

概要:あなたはQTextEditsetTabChangesFocus方法を使用することができます

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); 
     } 
    } 
}; 
関連する問題