2016-08-06 14 views
2

少しを作っています。Qtを使用してテキストエディタを作成しました。キーボードの"tab"キーをエディタで押すと、必要以上に行がインデントされます。コードを11スペースに見えるのではなく、約3スペースでインデントしたいと思います。タブキーの機能を変更する方法はありますか?ありがとう。QTextEdit「Tab」キーのインデントを小さくする

+1

TABビヘイビアを直接設定する方法がない場合は、 'keyPressEvent'をオーバーライドし、TABをキャッチして適切に処理します。 – hyde

+0

説明が必要:TABキー(ASCIIコード9)を挿入したまま、タブ幅を変更したいですか?または、Tabキーでスペースを挿入するように変更しますか? – hyde

答えて

3

TAB(ASCII文字9)の幅を変更するには、QTextEditQPlainTextEditの両方のために存在するtabStopWidth財産、(doc link)を使用することができます。これは、ピクセル単位でタブ幅を取ります。代わりに、それは移動し、TABは一定の幅を持っていないことに注意してください左端から始めて、このプロパティによって決定された画素間隔であるを、前方の横TABのを止める。

あなたはTAB幅はフォントに依存する場合、あなたには、いくつかのフォントのピクセル幅を取得するためにQFontMetricsクラスを使用することができますし、例コード:

// this object is QTextEdit or QPlainTextEdit or a subclass 
    int fontWidth = QFontMetrics(this->currentCharFormat().font()).averageCharWidth(); 
    this->setTabStopWidth(3 * fontWidth); 
関連する問題