Примените пользовательскую таблицу стилей к QTextDocument - PullRequest
0 голосов
/ 30 ноября 2018

Я хочу применить некоторую пользовательскую таблицу стилей к QTextDocument, используя функцию setDefaultStyleSheet, однако она игнорируется.
Согласно этой записи я должен добавить таблицу стилей после настройка содержания html, но это не решило мою проблему.
Мой код:

QString *html = new QString();
*html = "<tr>" + name + "</tr>"
        "<tr>" + surname + "</tr>"
        "<tr>" + age + "</tr></table>";
QTextDocument doc;
doc.setHtml(*html);
doc.setDefaultStyleSheet("table { border: 1px solid black; }"); // This should apply the style sheet

1 Ответ

0 голосов
/ 30 ноября 2018

Проблема здесь заключается в том, что для свойства table border (не путать с сокращением CSS) должно быть установлено значение, большее или равное 1, в противном случае граница не будет отображаться.Рассмотрим этот код:

QString *html = new QString();
*html = "<table border = 1> <tr>" + name + "</tr>"
    "<tr>" + surname + "</tr>"
    "<tr>" + age + "</tr></table>";
QTextDocument doc;
doc.setDefaultStyleSheet("table { border: 1px solid black}");
doc.setHtml(*html);

Кроме того, вы упоминаете в своем ответе, что вам нужно добавить таблицу стилей после настройки HTML, однако документы для QTextDocument, кажется, указывает иначе:

Таблица стилей по умолчанию применяется ко всему вновь отформатированному HTML-тексту, который вставляется> в документ, например, с помощью setHtml () или QTextCursor ::insertHtml ().

, поэтому в приведенном выше коде setDefaultStylesheet() равен перед setHtml().

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