LINUX.ORG.RU

QTextCursor и QProgressBar

 


0

1

Есть QTextBrowser, заполняется он через QTextCursor методами insertText, insertHtml, insertBlock... Нужно добавить возможность отображать передавачу файла. Т.е. нужно сделать по аналогии со скайпом:

<время> <иконка> <название файла> <индикатор загрузки> <кол-во байт>

Я не понимаю, как впилить в QTextBrowser (через QTextCursor) этот индикатор. Кто подскажет?

Сначала вопрос: а зачем для такой таблицы использовать QTextBrowser, а не QTableView?

Вариант решения: рисуй progressbar на картинке и вставля картинку куда надо. Прогресс рисуется методом

QStyle::drawControl(QStyle::CE_ProgressBar, QStyleOptionProgressBar(), painter );

grondek
()

Имхо, только свой виджет сделать, в котором будет TextBrowser и твой индикатор загрузки. Индикатор отображать только когда надо.

UVV ★★★★★
()

Насколько я помню полноценный виджет туда не встроить штатными средствами. Так что есть смысл заюзать Webkit и JS для таких целей.

NegatiV
()
Ответ на: комментарий от grondek

т.е. мне на каждое изменение прогрессбара необходимо рисовать картинку? что то как то очень круто... А есть ли рабочий пример? (QStyle::drawControl не использовал...)

energyclab
() автор топика
Ответ на: комментарий от NegatiV

деплоить webkit = +50Mb к размеру приложения (у меня на это ограничения есть)

energyclab
() автор топика
Ответ на: комментарий от UVV

Индикатор отображать только когда надо.

Костылем попахивает...одновременно может быть несколько загрузок, что не очень удобно контролировать...

energyclab
() автор топика
Ответ на: комментарий от energyclab

Да, придется рисовать. Чтобы не рисовать, надо использовать другие виджеты. Если в QTextBrowser будет только то, что ты описал, то лучше выбросить его нафиг и использовать QTableView с делегатом, который будет рисовать прогресс. Тогда при изменении данных в модели будет автоматически перерисовываться прогрессбар.

grondek
()
Ответ на: комментарий от grondek

Сначала вопрос: а зачем для такой таблицы использовать QTextBrowser, а не QTableView?

Так как это обычный чат, где ведется переписка...

energyclab
() автор топика
Ответ на: комментарий от UVV

под окнами модуль весит 30 Мб + зависимости

energyclab
() автор топика
Ответ на: комментарий от energyclab

Так как это обычный чат, где ведется переписка...

Пф, ну так используй QTableView/QTreeView, настрой его внешний вид так чтобы разделителей между строками/столбцами видно не было и будет тебе счастье.

NegatiV
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.