[SOLVED] Indent multiple lines with TAB in a QPlainTextEdit



  • Hi

    I am very new to Qt and my plan is to write a little text editor for a better understanding in Qt. But I have a little problem with the indentation and the TAB key.

    Is there an easy way to indent multiple (selected) lines with the tab key ? At the moment, it replaces the selected lines with a tab - example:

    Current situation:
    @
    Line 1
    Line 2
    Line 3
    Line 4
    @

    Planed:

    @
    <Tab>Line 1
    <Tab>Line 2
    <Tab>Line 3
    <Tab>Line 4
    @

    But the default behaviour is this, because the 4 lines are replaced with a tab (because they are selected):

    @
    <Tab>
    @

    Is there a way to override this behaviour or to write an indent/outdent function ?

    Greets



  • Hello Threadcore,
    You should subclass QPlainTextEdit and override following method:
    @virtual void QPlainTextEdit::keyPressEvent ( QKeyEvent * e )@

    Catch the tab key as described in http://doc.qt.digia.com/qt/qwidget.html#keyPressEvent
    Then you should iterate through selected lines and prepend tab character ('\t').
    You can obtain the selection through a QTextCursor object, which in turn you can obtain by method
    @QTextCursor QPlainTextEdit::textCursor () const@



  • Okay, thank you, that's a good starting point

    -PS: Is there a button to mark the thread as solved ?- Titel


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.