LINUX.ORG.RU

QTextCursor не делает переход на одну строку вниз

 


0

1

После отображения таблицы хочу сделать отступ на одну строчку в низ и написать текст. Но

    cursor.movePosition(QTextCursor::EndOfWord);
    cursor.movePosition(QTextCursor::Down);

не делает перенос.

Вот код:

 QTextCursor cursor = sourceTextEdit->textCursor(); // по другому не знаю как выйти из таблице может не верное решение
    cursor.movePosition(QTextCursor::Start);
    QTextCharFormat charFormat;

    charFormat.setFont(font);
    cursor.setCharFormat( charFormat );
    cursor.insertText("Table 1 bla bla bla");
    cursor.endEditBlock();

    cursor = sourceTextEdit->textCursor();
    cursor.movePosition(QTextCursor::EndOfWord);
    cursor.movePosition(QTextCursor::Down); // работает перенос

    QTextTableFormat tableFormat;
    tableFormat.setAlignment(Qt::AlignCenter);
    tableFormat.setBorderStyle( QTextTableFormat::BorderStyle_Solid );
    tableFormat.setCellPadding( 4 );
    tableFormat.setCellSpacing( 0 );
    tableFormat.setWidth( QTextLength( QTextLength::PercentageLength, 100 ) ); // формат таблице
    QTextTable *orderTable = cursor.insertTable(3, 7, tableFormat);

    char str[64];
    for(int i = 0; i < 7; i++)
    {
    sprintf(str,"%d",i+1);
    cursor = orderTable->cellAt(0, i).firstCursorPosition();
    cursor.insertText(tr(str), boldFormat);
    }

    for(char i = 1; i < 3; i++)
    {
        for(char j =0; j < 7; j++)
        {
            cursor = orderTable->cellAt(i, j).firstCursorPosition();
            cursor.insertText(tr("Я русский"), boldFormat);
        }
    }

   // cursor.endEditBlock();
    cursor = sourceTextEdit->textCursor(); // по другому не знаю как выйти из таблице может не верное решение
    cursor.movePosition(QTextCursor::EndOfWord);
    cursor.movePosition(QTextCursor::Down); // не работает перенос
    cursor.movePosition(QTextCursor::Down);
    cursor.setCharFormat( charFormat );
    cursor.insertText(lorem);
    cursor.insertText(lorem);
    cursor.endEditBlock();

    cursor = sourceTextEdit->textCursor();
    cursor.movePosition(QTextCursor::EndOfWord);
    cursor.movePosition(QTextCursor::Down); // не работает перенос
    cursor.movePosition(QTextCursor::Down);
    QTextImageFormat imageFormat;
    imageFormat.setQuality(100);
    imageFormat.setWidth(600);
    imageFormat.setHeight(400);
    imageFormat.setName("/root/Dene.jpg");
    cursor.insertImage(imageFormat);
    //cursor.endEditBlock();

    cursor = sourceTextEdit->textCursor(); // по другому не знаю как выйти из таблице может не верное решение
    cursor.movePosition(QTextCursor::EndOfWord);
    cursor.movePosition(QTextCursor::Down); // не работает перенос
    cursor.setCharFormat( charFormat );
    cursor.insertText("Fig.1 Crazy Dogs");
   // cursor.endEditBlock();

    textDocument = sourceTextEdit->document(); // создаем документ
    QTextDocumentWriter writer; // импорт документа в .odt формат
    writer.setFormat("odf");
    writer.setFileName("report.odt");
    writer.write(textDocument);

Ответ на: комментарий от XMs

sourceTextEdit = new QTextEdit(); Хочу добавить текст с отступом в низ на одну строчку. Сначала таблица —> отступ в низ на одну строчку —> текст. Вот «отступ в низ» как сделать? Подумал для этого нужно перенести сначала курсор в конец текущего слова а после сдвинуть вниз на одну линию.

Alex_Golubev
() автор топика
Последнее исправление: Alex_Golubev (всего исправлений: 1)