Вывод данных в QTextEdit в виде столбцов

189
06 июля 2019, 09:20

При работе в qt с QTextEdit столкнулась с проблемой вывода данных в ровные столбцы. Непонятно, как делать форматирование строк.

Пока код в таком виде:

while (query.next())
      {
      QString id = query.value(0).toString();
      QString surname = query.value(1).toString();
      QString name = query.value(2).toString();
      QString name2 = query.value(3).toString();
      QString id_costume = query.value(4).toString();
      QString size = query.value(5).toString();
ui->textEdit->insertPlainText(id+ " " +surname+" "+name+" "+name2+" "+id_costume+ " "+size+"\n");
      }

Выводит в следующем виде:

№ Фамилия:  Имя:    Отчество:    костюм: размер: 
1 Петров Иван Иванович 123 1
4 Иванов Петр Васильевич 1234 2

А желательно в следующем:

 № Фамилия:  Имя:    Отчество:    костюм: размер: 
 1 Петров    Иван    Иванович     123     1
 4 Иванов    Петр    Васильевич   1234    2
Answer 1

Для решения подобной задачи можно использовать символ табуляции \t, но его использование порождает много проблем.

Примерами таких проблем могут быть:

  • составление корректного формата строк для отображения (надо вывести все красиво);
  • разбор этого формата (если данные были отредактированы);
  • колдовство с ошибками в этом формате (если при редактировании пользователь случайно удалил "специальные символы" на которые ориентируется метод разбора данных).

Проблемы с отображением при значениях столбцов разной длины тоже не будут неожиданностью (таб во второй строке не влезает, соответственно вся строка сдвигается):

№  Имя     Фамилия      Возраст
1  Ян      Петров       21
2  Александр      Васильев      24
3  Виктор  Иванов       22

В QTextEdit есть возможность вставлять HTML (например при помощи метода insertHtml), так что, можно копнуть и в эту сторону (вставить HTML-таблицу). Но, имхо, это больше похоже на шаманство.

Итог: использование QTextEdit для табличного отображения данных чревато множеством подводных камней и граблей, поэтому есть смысл рассмотреть более подходящие варианты (в простейшем случае это может быть QTableWidget).

READ ALSO
Как разворачивается данный макрос?

Как разворачивается данный макрос?

Выполняя задачу по макросам попался документ о конкатенации макросовВ нем следующий код:

178
SQRT decomposition 2D

SQRT decomposition 2D

Есть площадь заданного размера, на ней указаны N точек, и даны их координатыНужно научиться быстро отвечать на запрос сколько точек находится...

197
Не могу обратиться к полю в class

Не могу обратиться к полю в class

После компилиции выдает ошибку "Это объявление не содержит класс хранения или спецификатор типа"

187
CSRC и SSRC в RTP

CSRC и SSRC в RTP

Реализую протокол RTP, не могу разобраться с RTP Payload Format for H264 Video а если точнее быть то с первыми 4 байтами в CSRC

190