2

QT5の問題に苦しんでいます。QPainterHTML テーブルを作成 (およびオブジェクトにペイント) しようとしています。これは私のコードです:

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が、遅すぎます。立ち往生しています。誰かがそれを理解するのを手伝ってくれることを願っています。

4

1 に答える 1

5

QTextDocument標準 HTML のレンダラーではありません。わずかに互換性のない HTML および CSS サブセットを実装しています。たとえば、pxサフィックスはサポートされていません。すべての寸法は、ピクセル (接尾辞なし) またはパーセント (接尾辞付き) のいずれか%です。接尾辞なしで幅を試してみてくださいpx

QTextDocument一般的な HTML/CSS ドキュメントではなく、実装するマークアップの関連ド​​キュメントのみに依存できます。

于 2015-07-25T13:39:09.797 に答える