Qt Widgets. Форматирование текста.

281
13 ноября 2017, 21:23

Есть функция, которая при выводе текста на виджет Textedit (chat_edit), выравнивает его по левому краю через Qt::AlignLeft. Я хочу, чтоб, когда я получу текст, то он был выравнен по правому краю. Пробовал изменить Qt::AlignLeft на Qt::AlignRight, но тогда весь текст будет выравнен по правому краю, а не строка. Получается, что хочу, как на картинки ниже. С помощью чего это реализовывать?

void Mwindow::on_send_button_clicked()
{ 
    QString s = ui->send_edit->text();
    ui->send_edit->clear();
    QTextCursor cursor = ui->chat_edit->textCursor();
    QTextBlockFormat textBlockFormat = cursor.blockFormat();
    textBlockFormat.setAlignment(Qt::AlignLeft);
    cursor.mergeBlockFormat(textBlockFormat);
    ui->chat_edit->setTextCursor(cursor);
    ui->chat_edit->append("Я: " + s);
}
Answer 1

Ну вы же формат меняте у блока на котором курсор стоит, а потом параграф добавляете в конец документа. У вас одно с другим никак не связано. Логично же сначала добавить параграф, а потом установить ему стиль какой надо. И курсор тут не нужен, просто берете последний параграф.

READ ALSO
Палиндром - ошибка

Палиндром - ошибка

Программа должна проверять строку на палиндромНе понимаю , в чем ошибка

233
Ошибка undefined reference to + list<T>::iterator it? [дубликат]

Ошибка undefined reference to + list<T>::iterator it? [дубликат]

На данный вопрос уже ответили:

282
Какой компилятор для С++ лучше? [требует правки]

Какой компилятор для С++ лучше? [требует правки]

Не можете подсказать, какой компилятор для С++ лучше? Изучил основы С++ и хочу попрактиваться

227
C++ Преобразование vector&lt;string&gt; в int

C++ Преобразование vector<string> в int

Добрый вечерУ меня имеется вот такая задачка: Создайте вектор, хранящий десять строковых значений " zero " , " one " , "

292