Я борюсь с проблемой QT5. Я пытаюсь построить (а затем нарисовать на объекте QPainter
) таблицу HTML. Это мой код:QTextDocument HTML Ширина таблицы
QTextDocument td;
QString table_style= QString("<style type=\"text/css\">"
".tg { table-layout: fixed; width: 200px; }"
".tg td{padding-bottom: 5px;border-style:solid;border-width:0px;}"
".tg .tg-3x1q{color: rgba(255, 255, 255, 0.5); text-align:right}"
".tg .tg-6bqv{color: rgba(255, 255, 255, 0.5); padding-left: 5px;}"
"</style>");
QString table_html = QString(" <table width=\"500px\" class=\"tg\">"
"<tr>"
"<td class=\"tg-3x1q\" width=\"150px\">1</td>"
"<td class=\"tg-6bqv\" width=\"150px\"><sup>th</sup></td>"
"</tr>"
"<tr>"
"<td class=\"tg-3x1q\" width=\"150px\">2</td>"
"<td class=\"tg-6bqv\" width=\"150px\"><sup>rpm</sup></td>"
"</tr>"
"<tr>"
"<td class=\"tg-3x1q\" width=\"150px\">3</td>"
"<td class=\"tg-6bqv\" width=\"150px\"><sup>km/h</sup></td>"
"</tr>"
"</table>");
td.setDefaultStyleSheet(table_style);
td.setHtml(table_html);
td.drawContents(painter);
Таблица правильно показана в живописи, но не имеет фиксированной ширины столбца. Для того, чтобы достичь этого результата, я попытался почти все: (! Но ширина)
- Установка
table-layout: fixed
, но из QT's docs не поддерживается - Установки
width
с или без двойных кавычек, относительно или абсолютно - Вставки в каждой ячейке a
div
с фиксированной шириной Пробовал (в соответствии с этим вопросом http://www.qtcentre.org/threads/31661-QTextDocument-style-CSS-does-not-work), чтобы добавить стиль с телом. Как это
td.setHtml(table_style + table_html);
Ни один из этих способов работали. Более того, если я попытаюсь добавить некоторые пробелы для прокладки строки, они были обрезаны после того, как таблица была нарисована. Я также прочитал, что могу использовать WebView
для достижения результата, но он слишком медленный. Я застрял, надеюсь, кто-то может помочь мне разобраться.