メニューおよびアイテムビューのスタイル設定
このページは「ウィジェット・スタイル・リファレンス」の一部です。要素ツリー、スクリーンショット、および表に関する説明については、当該ページを参照してください。すべてのウィジェットが設定する共通の状態フラグおよびメンバについては、「スタイルによるウィジェットの描画方法」に一覧が記載されています。
メニュー
QMenu はアクションのリストを保持し、それぞれをメニュー項目として描画します。ペイントイベントが発生すると、まずメニューのパネルを描画し、次にCE_MenuItem とQStyleOptionMenuItem を使用して各項目を描画し、最後にフレームを描画します。メニュー項目には独立したラベル要素がないため、CE_MenuItem がチェックマーク、アイコン、テキスト、ショートカット、およびサブメニューの矢印を描画します。
PE_PanelMenu、背景CE_MenuItemは、アクション(PM_SmallIconSize)ごとに1回描画されますPE_IndicatorMenuCheckMark、チェックされた項目に対して。多くのスタイルでは、代わりにPE_IndicatorCheckBoxおよびPE_IndicatorRadioButtonが使用されます。PE_IndicatorArrowRightまたは、サブメニューを開く項目については `PE_IndicatorArrowLeft` を使用します。
CE_MenuScroller(PM_MenuScrollerHeight)、メニューが画面に収まらない場合に、SH_Menu_Scrollableが設定されている場合CE_MenuTearoff(PM_MenuTearoffHeight)、tear-off メニューの場合PE_FrameMenu(PM_MenuPanelWidth)、アイテムやフレームで覆われていない領域には、QStyleOptionFrame のlineWidthがPM_MenuPanelWidthCE_MenuEmptyAreaであるxml-ph-0001@deepl.internalを持つメニュー( xml-ph-0000@deepl.internal )の場合、アイテムやフレームで覆われていない領域については、そのフレームが
QMenu は、PM_MenuHMargin 、PM_MenuVMargin 、PM_MenuPanelWidth 、およびPM_MenuDesktopFrameWidth を使用して、アイテム自体のレイアウトを行います。また、SH_Menu_SubMenuPopupDelay 、SH_Menu_MouseTracking 、SH_Menu_Mask など、多くのSH_Menu_ ヒントも参照します。

QMenu initFrom() を呼び出した後の状態をリセットするため、各項目には 、 、および以下の表に示すフラグのみが含まれます:State_Enabled State_Active
| 状態 | 設定される条件 |
|---|---|
State_Selected | アイテムがハイライト表示されており、セパレータではない場合。 |
State_Sunken | アイテムが押されている。 |
State_DownArrow | 項目が、メニューを下方向にスクロールさせるスクロールバーである。 |
State_Enabled | アクションが有効な場合。無効なアクションは、メニューが有効な場合でもこのフラグをクリアします。 |
QStyleOptionMenuItem のメンバは以下の通りです:
| メンバ | 説明 |
|---|---|
| menuItemType | MenuItemType の値:通常の項目、デフォルト項目、区切り、サブメニュー、スクロールバー、切り離し可能な項目、余白、または空白領域。 |
| checkType | CheckType の値:チェック不可、排他的、または非排他的。 |
| checked | その項目がチェックされているかどうか。 |
| menuHasCheckableItems | メニュー内の少なくとも1つの項目がチェック可能かどうか。チェック可能であれば、スタイルはチェックマーク用のスペースを確保できます。 |
| menuRect | メニュー全体の矩形。 |
| text | 項目のテキスト。テキストとショートカットはタブ文字で区切られています。 |
| icon | 項目のアイコン。 |
| maxIconWidth | メニュー内で最も幅の広いアイコンの幅。 |
| reservedShortcutWidth | ショートカット列用に確保された幅。 |
| font | 項目テキストのフォント。 |
CE_MenuScroller およびCE_MenuTearoff の場合、メニューではmenuItemType 、checkType 、maxIconWidth 、およびreservedShortcutWidth のみが設定されます。CE_MenuEmptyArea では、menuRect も設定されます。
メニューバー
QMenuBar は、各メニュータイトルをCE_MenuBarItem とQStyleOptionMenuItemV2 で描画し、最後のタイトルの後のスペースをCE_MenuBarEmptyArea で、そのパネルをPE_PanelMenuBar とQStyleOptionFrame で描画します。ドロップダウンメニューはQMenuです。詳細は「メニュー」を参照してください。
CE_MenuBarItem、メニューごとに1回(PM_SmallIconSize)PE_PanelMenuBar(PM_MenuBarPanelWidth)CE_MenuBarEmptyArea
メニューバーは、PM_MenuBarItemSpacing 、PM_MenuBarHMargin 、およびPM_MenuBarVMargin を使用して項目を配置し、CT_MenuBarItem でサイズを調整します。QMenuBar がパネルに渡しするペインターは、それぞれPM_MenuBarPanelWidth の幅を持つ4つの境界ストリップにクリップされるため、パネルは境界線のみを描画できます。空いている領域のペインターは、項目と境界線が残した領域にクリップされます。バーはSH_MenuBar_MouseTracking 、SH_MenuBar_AltKeyNavigation 、およびSH_DrawMenuBarSeparator を参照します。
macOSでは、QMenuBar はデフォルトでネイティブのメニューバーを使用し、何も描画しません。スタイルを使用させるには、QMenuBar::setNativeMenuBar()を呼び出してください。

QMenuBar initFrom() を呼び出すのではなく、オプション自体に値を設定します。メニューバーが有効な場合は を設定し、項目には以下のフラグを設定します:State_Enabled
| 状態 | 以下の場合に設定されます |
|---|---|
State_Selected | 項目がハイライトされているとき。 |
State_Sunken | 項目のメニューが開いているとき。 |
State_HasFocus | メニューバーにフォーカスがあるか、または現在の項目が設定されているとき。 |
State_MouseOver | マウスがそのアイテムの上にあるとき。 |
メニューバーは、QStyleOptionMenuItem の以下のメンバーを使用します:
| メンバ | 説明 |
|---|---|
| menuRect | メニューバー全体の矩形。 |
| text | メニューのタイトル。 |
| icon | メニューのアイコン。これを描画するスタイルはほとんどありません。 |
パネルについては、QStyleOptionFrame::lineWidth がPM_MenuBarPanelWidth に、midLineWidth が0に設定されています。
項目ビューのヘッダー
QHeaderView は、各ヘッダーセクションをCE_Header とQStyleOptionHeaderV2 で描画します。QCommonStyle は、これをセクションの背景、ラベル、およびソートインジケーターに分割します:
CE_Header、セクションごとに1回(PM_HeaderMargin)CE_HeaderSectionCE_HeaderLabel(SE_HeaderLabel)PE_IndicatorHeaderArrow(SE_HeaderArrow,PM_HeaderMarkSize)、ソート済みのセクションについては
CE_HeaderEmptyArea、最後のセクションの後のスペースに対して
ヘッダービューは、CT_HeaderSection を使用してセクションのサイズを決定し、ユーザーがセクションの境界をドラッグできる領域にはPM_HeaderGripMargin を使用します。QTableView は、2つのヘッダーが交わる左上隅に、CE_Header としてボタンを描画します。ヒントSH_Header_ArrowAlignment は、並べ替えインジケータを配置します。

ヘッダーは、セクションに対して以下の状態フラグを設定します:
| 状態 | 設定されるタイミング |
|---|---|
State_Raised | 常に。ヘッダーはすべてのセクションに対してこれを設定します。 |
State_Horizontal | これは、ビューの上部にある水平ヘッダーです。 |
State_Sunken | セクションが押された場合、またはセクションが選択され、highlightSections がオンになっている場合。 |
State_On | セクション内の項目が選択され、かつ「highlightSections 」がオンになっている場合。 |
State_MouseOver | マウスがセクション上にホバーしているとき。sectionsClickable が有効な場合にのみ設定されます。 |
QStyleOptionHeader のメンバは以下の通りです:
| メンバー | 説明 |
|---|---|
| section | セクションの論理インデックス。 |
| text | セクションのテキスト。 |
| textAlignment | セクション内のテキストの配置。 |
| icon | セクションのアイコン。 |
| iconAlignment | セクション内のアイコンの配置。 |
| position | SectionPosition の値:他のセクションに対するこのセクションの相対的な位置。 |
| selectedPosition | SelectedPosition の値:選択されたセクションの、このセクションに対する位置。 |
| sortIndicator | SortIndicator の値:インジケーターなし、またはソート矢印の方向。 |
| orientation | これがビューの上にある水平ヘッダーか、その横にある垂直ヘッダーかを指定します。 |
QStyleOptionHeaderV2 textElideMode (テキストが収まらない場合の省略モード)と、 (ドラッグされたセクションがドロップされようとしているセクションに設定される)が追加されます。isSectionDragTarget
ツリーブランチインジケータ
QTreeView PE_IndicatorBranch を使用して、ノード間の関係を示す線や矢印であるブランチインジケータを描画します。各項目の前に、インデントレベルごとに 1 つのインジケータが描画されるため、深くネストされた項目には複数のインジケータが表示されます。また、ツリーは を使用して各行の背景を描画し、 を使用してレベルごとにインデントを付けます。PE_PanelItemViewRow PM_TreeViewIndentation
どちらの要素もQStyleOptionViewItem を受け取るため、スタイルでは行のパレット、フォント、および交互行の機能フラグを読み取ることも可能です。分岐の種類は状態フラグにエンコードされています:
| 状態 | 設定される条件 |
|---|---|
State_Item | インジケーターが、祖先要素ではなく、この行のアイテムに属している場合。ここに水平のコネクターを描画します。 |
State_Children | アイテムに子要素があるため、インジケーターには展開または折りたたみ用の矢印が表示されます。 |
State_Open | アイテムは展開されています。 |
State_Sibling | このレベルのノードの下に兄弟ノードがあるため、垂直線が下方向に伸びています。 |
ノードの下に兄弟要素がないレベルについては、これらのフラグのいずれも持たないインジケータが描画されます。このスタイルでは、その部分には何も描画されません。

アイテムビューのアイテム
デリゲートは、アイテムビュー内のアイテムを描画します。Qt のデフォルトのデリゲートである `QStyledItemDelegate` は、`QStyleOptionViewItem ` を使用して `CE_ItemViewItem ` を描画し、`CT_ItemViewItem` を使用してアイテムのサイズを計算します。したがって、スタイルは、デリゲートが伴わない場合のアイテムの外観を制御します。`QCommonStyle ` は、要素を背景、チェックインジケータ、装飾、テキスト、およびフォーカスフレームに分割します。
CE_ItemViewItemPE_PanelItemViewItemPE_IndicatorItemViewItemCheck(SE_ItemViewItemCheckIndicator)- 装飾部分は、paint() によって描画されます(
SE_ItemViewItemDecoration)。 - テキストは、QCommonStyle によって、文字の省略や改行処理を伴ってレイアウトおよび描画されます(
SE_ItemViewItemText) PE_FrameFocusRect(SE_ItemViewItemFocusRect)
ビューは、SH_ItemView_ShowDecorationSelected 、SH_ItemView_ActivateItemOnSingleClick 、SH_ItemView_ArrowKeysNavigateIntoChildren などのアイテムビューヒントを参照します。QStyledItemDelegate が処理できないデータ型やロールをサポートするには、カスタムデリゲートを作成してください。詳細は「モデル/ビュープログラミング」を参照してください。
QStyleOptionViewItem の状態フラグおよびメンバーについては、そのクラスドキュメントに記載されています。最も重要なものは、State_Selected 、State_HasFocus 、checkState 、decorationPosition 、displayAlignment 、features 、icon 、text 、およびviewItemPosition です。
「ウィジェットスタイルのリファレンス」、「ボタンおよび入力ウィジェットのスタイル設定」、「コンテナおよびウィンドウのスタイル設定」、および「QStyledItemDelegate 」も参照してください 。
© 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.