QTextDocument HTML表格宽度

QTextDocument HTML表格宽度,html,qt,qtextdocument,Html,Qt,Qtextdocument,我正在努力解决QT5问题。我正在尝试构建(然后在QPainter对象上绘制)一个HTML表。这是我的代码: QTextDocument td; QString table_style= QString("<style type=\"text/css\">" ".tg { table-layout: fixed; width: 200px; }" ".tg td{pad

我正在努力解决QT5问题。我正在尝试构建(然后在
QPainter
对象上绘制)一个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);
这些方法都不起作用。此外,如果我尝试添加一些空格来填充行,则在绘制表格后,这些空格会被修剪掉。我还读到,我可以使用
WebView
来实现这个结果,但速度太慢了。
我被卡住了,我希望有人能帮我解决这个问题。

QTextDocument
不是任何标准HTML的渲染器。它实现了一个稍微不兼容的HTML和CSS子集。例如,不支持
px
后缀。所有尺寸都以像素(不带后缀)或百分比(带
%
后缀)为单位。您可能希望尝试不带
px
后缀的宽度

您只能依赖于它实现的标记的
QTextDocument
相关文档,而不能依赖于一般的HTML/CSS文档

td.setHtml(table_style + table_html);