サポートされているHTMLサブセット
Qtのテキストウィジェットは、HTML 4マークアップのサブセットを使用して指定されたリッチテキストを表示することができます。`QTextDocument`を使用するウィジェット(例:QLabel やQTextEdit など)は、この方法で指定されたリッチテキストを表示できます。
テキストウィジェットでのHTMLマークアップの使用
ウィジェットは HTML マークアップを自動的に検出し、それに応じてリッチテキストを表示します。たとえば、ラベルの `text ` プロパティに文字列 `"<b>Hello</b> <i>Qt!</i>" ` を設定すると、ラベルには次のようなテキストが表示されます:Hello Qt!
テキストに HTML マークアップが使用される場合、Qt はHTML 4仕様で定義されたルールに従います。これには、テキストのレイアウトに関するデフォルトのプロパティが含まれます。例えば、テキストの流れの方向(左から右)は、テキストのブロックに dir 属性を適用することで変更可能です。
サポートされているタグ
次の表は、QtのリッチテキストエンジンがサポートするHTMLタグの一覧です。
注: 以下に挙げるタグに対して実装されている機能は 、HTML 4 仕様の完全な仕様の一部です。すべての属性がサポートされているわけではありません。各タグのコメントを参照してください。
| タグ | 説明 | コメント |
|---|---|---|
a | アンカーまたはリンク | href 、name 、title 属性をサポートしています。 |
address | アドレス | |
b | 太字 | |
big | 大きなフォント | |
blockquote | インデントされた段落 | |
body | 文書本文 | bgcolor 属性をサポートしており、Qt XML の `color name ` または `#RRGGBB ` による色指定が可能です。 |
br | 改行 | |
center | 段落の中央揃え | |
cite | インライン引用 | i と同じ。 |
code | コード | tt と同じ。 |
dd | 定義データ | |
del | 削除済み | s と同じです。Qt 6.11 以降 |
dfn | 定義 | i と同じ。 |
div | ドキュメントの分割 | 標準のブロック属性をサポートしています。 |
dl | 定義リスト | 標準のブロック属性をサポートしています。 |
dt | 定義項 | 標準のブロック属性をサポートしています。 |
em | 強調 | i と同じです。 |
font | フォントサイズ、フォントファミリー、および/または色 | 以下の属性をサポートしています:size 、face 、およびcolor (Qtcolor names または#RRGGBB )。 |
h1 | レベル 1 の見出し | 標準のブロック属性をサポートしています。 |
h2 | レベル 2 見出し | 標準のブロック属性をサポートしています。 |
h3 | レベル 3 見出し | 標準のブロック属性をサポートしています。 |
h4 | レベル 4 見出し | 標準のブロック属性をサポートしています。 |
h5 | レベル 5 の見出し | 標準のブロック属性をサポートしています。 |
h6 | レベル6の見出し | 標準のブロック属性をサポートしています。 |
head | 文書ヘッダー | |
hr | 水平線 | width 属性をサポートしており、絶対値または相対値 (%) として指定できます。 |
html | HTMLドキュメント | |
i | イタリック | |
img | 画像 | src 、width 、height 、style 、alt 、title 属性をサポートしています。 |
kbd | ユーザーが入力したテキスト | |
meta | メタ情報 | meta タグを使用してテキストのエンコーディングが指定されている場合、Qt::codecForHtml()によってそれが取得されます。同様に、QTextDocument::toHtml()にエンコーディングが指定されている場合、そのエンコーディングはmeta タグを使用して保存されます。例:<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> |
li | リスト項目 | |
nobr | 改行不可のテキスト | |
ol | 番号付きリスト | 標準のリスト属性をサポートしています。 |
p | 段落 | デフォルトでは左揃えになります。標準のブロック属性をサポートしています。 |
pre | プレフォーマットされたテキスト | |
qt | Qtリッチテキストドキュメント | html の同義語。以前のバージョンのQtとの互換性のために提供されています。 |
s | 取り消し線 | |
samp | サンプルコード | tt と同じ。 |
small | 小文字 | |
span | グループ化された要素 | |
strong | 太字 | b と同じです。 |
sub | 下付き文字 | |
sup | 上付き | |
table | 表 | 以下の属性をサポートしています:border 、bgcolor (Qtcolor names または#RRGGBB )、cellspacing 、cellpadding 、width (絶対または相対)、およびheight 。 |
tbody | 表本文 | 何もしません。 |
td | テーブルデータセル | 標準のテーブルセル属性をサポートしています。 |
tfoot | 表のフッター | 何もしません。 |
th | 表のヘッダーセル | 標準のテーブルセルの属性をサポートしています。 |
thead | 表のヘッダー | thead タグが指定されている場合、複数ページにまたがる表を印刷する際に使用されます。 |
title | ドキュメントのタイトル | title タグを使用して指定された値は、QTextDocument::metaInformation() を通じて取得できます。 |
tr | 表の行 | bgcolor 属性をサポートしており、Qt XML のcolor name または#RRGGBB の色指定を使用できます。 |
tt | タイプライターフォント | |
u | 下線付き | |
ul | 下線付き | 標準のリスト属性をサポートしています。 |
var | Variable | i と同じです。 |
ブロック属性
div 、dl 、dt 、h1 、h2 、h3 、h4 、h5 、h6 、p 各タグでは、以下の属性がサポートされています:
align(left,right,center,justify)dir(ltr,rtl)
リスト属性
ol およびul タグでは、以下の属性がサポートされています:
type(1,a,A,square,disc,circle)
さらに、ol タグでは以下の属性がサポートされています:
start
表セルの属性
td およびth タグでは、以下の属性がサポートされています:
width(absolute、relative、または値なし)bgcolor(Qt XMLcolor names または#RRGGBB)colspanrowspanalign(left,right,center,justify)valign(top,middle,bottom)
CSS プロパティ
以下の表は、QtのリッチテキストエンジンがサポートするCSSプロパティの一覧です:
| プロパティ | 値 | 説明 |
|---|---|---|
background-color | <color> | 要素の背景色 |
background-image | <uri> | 要素の背景画像 |
color | <color> | テキストの前景色 |
font-family | <フォントファミリー名> | フォントファミリー名 |
font-size | [ small | medium | large | x-large | xx-large ] | <size>pt | <size>px | 文書フォントに対する相対サイズ、またはポイントまたはピクセルで指定されたフォントサイズ |
font-style | [ 通常 | イタリック | 斜体 ] | |
font-weight | [ normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 ] | テキストに使用されるフォントの太さを指定します。ここで、normal およびbold は、対応するQFont の太さにマッピングされます。数値は、QFont の同等の太さ値の8倍となります。 |
text-decoration | none | [ underline || overline || line-through ] | その他のテキスト効果 |
font | [ [ <'font-style'> || <'font-weight'> ]? <'font-size'> <'font-family'> ] | フォントの短縮プロパティ |
text-indent | <length>px | 1行目のテキストのインデント(ピクセル単位) |
white-space | normal | pre | nowrap | pre-wrap | HTML 内の空白の処理方法を指定します。 |
margin-top | <length>px | 段落の上マージン(ピクセル単位) |
margin-bottom | <length>px | 段落の下マージン(ピクセル単位) |
margin-left | <length>px | 段落の左マージン(ピクセル単位) |
margin-right | <length>px | 段落の右余白(ピクセル単位) |
padding-top | <length>px | 表のセル上部のパディング(ピクセル単位) |
padding-bottom | <length>px | テーブルセルの下部パディング(ピクセル単位) |
padding-left | <length>px | テーブルセルの左パディング(ピクセル単位) |
padding-right | <length>px | テーブルセルの右パディング(ピクセル単位) |
padding | <length>px | すべてのパディングプロパティを一度に設定するための省略形。 |
vertical-align | baseline | sub | super | middle | top | bottom | テキストの垂直方向の配置。テキストテーブルセルの垂直方向の配置には、middle、top、bottom のみが適用されます。 |
border-collapse | collapse | separate | テキストテーブルの境界線の折りたたみモード。collapseに設定すると、セル間隔は適用されません。 |
border-color | <color> | テキストテーブルおよびテーブルセルの枠線の色。 |
border-top-color | <color> | 表セルの上枠の色。 |
border-bottom-color | <color> | 表のセルの下枠の色。 |
border-left-color | <color> | 表セルの左枠線の色。 |
border-right-color | <color> | 表セルの右枠の色。 |
border-style | none | dotted | dashed | dot-dash | dot-dot-dash | solid | double | groove | ridge | inset | outset | テキストテーブルおよびテーブルセルの枠線のスタイル。 |
border-top-style | <border-style> | 表セルの上枠のスタイル。 |
border-bottom-style | <border-style> | 表のセルに対する下枠のスタイル。 |
border-left-style | <border-style> | 表のセルに対する左側の枠線のスタイル。 |
border-right-style | <border-style> | テーブルセルの右側の枠線のスタイル。 |
border-width | <width>px | テーブルまたはセルの枠線の幅 |
border-top-width | <length>px | テーブルセルの上側の枠線の幅。 |
border-bottom-width | <length>px | 表のセルの下枠の幅。 |
border-left-width | <length>px | テーブルセルの左枠線の幅。 |
border-right-width | <length>px | テーブルセルの右枠の幅。 |
border-top | <width>px <border-style> <border-color> | 上側の枠線の幅、スタイル、色を設定するための省略形 |
border-bottom | <width>px <border-style> <border-color> | 下側の境界線の幅、スタイル、および色を設定するための省略形 |
border-left | <width>px <border-style> <border-color> | 左側の境界線の幅、スタイル、色を指定するための省略形 |
border-right | <width>px <border-style> <border-color> | 右側の境界線の幅、スタイル、色を設定するための短縮表記 |
border-top | <width>px <border-style> <border-color> | 上側の境界線の幅、スタイル、および色を設定するための省略形 |
border-bottom | <width>px <border-style> <border-color> | 下側の境界線の幅、スタイル、色を設定するための短縮記法 |
border | <width>px <border-style> <border-color> | 4つの境界線の幅、スタイル、色をすべて設定するための省略形 |
background | [ <'background-color'> || <'background-image'> ] | 背景の省略形プロパティ |
page-break-before | [ auto | always ] | 段落や表の前に改ページを強制できるようにする |
page-break-after | [ auto | always ] | 段落や表の後に強制的に改ページを行うようにする |
float | [ left | right | none ] | 画像やテキストを別の要素内のどこに配置するかを指定します。なお、float プロパティは、表と画像でのみサポートされています。 |
text-transform | [ uppercase | lowercase ] | テキストを表示する前に適用する変換を選択します。 |
font-kerning | [ normal | none ] | テキストの文字間のカーニングを有効または無効にします。 |
font-variant | small-caps | テキストを表示する前に、スモールキャップス変換を適用します。 |
word-spacing | <width>px | 各単語間の代替間隔を指定します。 |
line-height | <number>[% | px | pt | cm] | 行の高さを指定します。以下のいずれかを指定できます:
|
注: <p> など、特定のCSS プロパティはブロックタグに適用された場合にのみサポートされます。例えば、<span> に対してこれらのプロパティを設定しても効果はありません。marginは、そのようなプロパティの一例です。QTextDocument におけるブロックおよびspanで利用可能な書式設定オプションの概要については、QTextBlockFormat およびQTextCharFormat を参照してください。
Qt固有のCSSプロパティ
前述の標準的な CSS プロパティに加え、テキストブロックのスタイル設定には以下の Qt 固有のプロパティも使用できます:
| プロパティ | 値 | 説明 |
|---|---|---|
-qt-block-indent | <number> | テキストブロックを指定したスペース数分だけインデントします。 |
-qt-list-indent | <number> | リスト項目を指定したスペース数だけインデントします。 |
-qt-list-number-prefix | <string> | HTMLの順序付きリストにおいて、リスト番号の先頭に指定された文字列を付加します。 |
-qt-list-number-suffix | <string> | HTMLの番号付きリストにおいて、リスト番号の末尾に指定された文字列を追加します。 |
-qt-paragraph-type | empty | テキストブロックを非表示にします。 |
-qt-table-type | root | frame | root テキストブロックを、境界線やインデントなしでインラインでレンダリングします。一方、frame は、テキストブロックを新しい行に配置し、枠で囲んでレンダリングします。 |
-qt-user-state | <number> | テキストブロックのユーザーデータとして追加します。 |
サポートされている CSS セレクタ
:first-child 、:visited 、:hover などの疑似クラスセレクタを除き、すべての CSS 2.1 セレクタクラスがサポートされています。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.