ボタンおよび入力ウィジェットのスタイル設定
このページは「ウィジェットスタイルリファレンス」の一部です。要素ツリー、スクリーンショット、および表に関する説明については、当該ページを参照してください。すべてのウィジェットが設定する共通の状態フラグおよびメンバーについては、「スタイルによるウィジェットの描画方法」に記載されています。
プッシュボタン
QPushButton は、QStyleOptionButton を持つ単一のコントロール要素CE_PushButton を描画します。QCommonStyle は、これをベベル、ラベル、およびフォーカスフレームに分割します:
CE_PushButtonCE_PushButtonBevel(PM_ButtonDefaultIndicator,PM_MenuButtonIndicator)PE_FrameDefaultButton、デフォルトのボタンについてはPE_PanelButtonCommandPE_IndicatorArrowDown、メニュー付きボタンの場合は
CE_PushButtonLabel(SE_PushButtonContents,PM_ButtonShiftHorizontal,PM_ButtonShiftVertical,PM_ButtonIconSize)PE_FrameFocusRect(SE_PushButtonFocusRect)
このボタンは、CT_PushButton およびPM_ButtonMargin を使用してサイズヒントを計算します。要素の境界はスタイルによって異なります。QCommonStyle では、PE_FrameDefaultButton によってベベル付き矩形全体が取得されます。PE_PanelButtonCommand も同様ですが、自動デフォルトのボタンの場合は例外で、パネルは各辺でPM_ButtonDefaultIndicator だけ縮小されます。

QPushButton 以下の状態フラグを設定します:
| 状態 | 設定される条件 |
|---|---|
State_Sunken | ボタンが押されたとき、またはそのメニューが表示されたとき。 |
State_On | ボタンがチェックされている。 |
State_Raised | ボタンがフラット状態でなく、かつ押されていないとき。 |
QStyleOptionButton のその他のメンバーは以下の通りです:
| メンバー | 説明 |
|---|---|
| 機能 | QStyleOptionButton::ButtonFeature 列挙型のフラグで、ボタンを「フラット」、「デフォルト」、「自動デフォルト」、「メニュー付き」、または「コマンドリンクボタン」として記述します。 |
| icon | ボタンにQIcon がある場合、その値。 |
| iconSize | アイコンのサイズ。 |
| text | ボタンのテキスト。 |
チェックボックスとラジオボタン
QCheckBox およびQRadioButton は、構造が同一です。どちらもQStyleOptionButton を使用し、CE_CheckBox またはCE_RadioButton のいずれか1つのコントロール要素を描画します。QCommonStyle は、インジケータ、ラベル、およびフォーカス枠を描画します:
CE_CheckBoxPE_IndicatorCheckBox(SE_CheckBoxIndicator,PM_IndicatorWidth,PM_IndicatorHeight)CE_CheckBoxLabel(SE_CheckBoxContents,PM_CheckBoxLabelSpacing)PE_FrameFocusRect(SE_CheckBoxFocusRect)
CE_RadioButtonPE_IndicatorRadioButton(SE_RadioButtonIndicator,PM_ExclusiveIndicatorWidth,PM_ExclusiveIndicatorHeight)CE_RadioButtonLabel(SE_RadioButtonContents,PM_RadioButtonLabelSpacing)PE_FrameFocusRect(SE_RadioButtonFocusRect)
サイズヒントにはCT_CheckBox およびCT_RadioButton が使用されます。「チェックボックスのスタイリング:実践ガイド」では、ウィジェットおよびQCommonStyle のコードを通じて、チェックボックスの描画プロセスを追跡しています。

ボタンは以下の状態フラグを設定します:
| 状態 | 設定される条件 |
|---|---|
State_Sunken | ボタンが押されたとき。クリック可能な領域は `SE_CheckBoxClickRect ` または `SE_RadioButtonClickRect` であり、QCommonStyle ではラベルとインジケータの両方をカバーします。 |
State_NoChange | チェックボックスが部分的にチェックされている(3状態のチェックボックス)。 |
State_On | ボタンがチェックされている。 |
State_Off | ボタンがチェックされていない状態。 |
QStyleOptionButton のその他のメンバーは、「プッシュボタン」の項に記載されています。
ツールボタン
QToolButton は、QStyleOptionToolButton を持つ 1 つの複合コントロール、CC_ToolButton を描画します。これには 2 つのサブコントロールがあります。ボタン自体と、a menu button を持つボタンの場合はメニューインジケータです。
CC_ToolButtonSC_ToolButtonPE_PanelButtonTool(PM_DefaultFrameWidth)PE_FrameFocusRectCE_ToolButtonLabel(PM_ButtonShiftHorizontal,PM_ButtonShiftVertical)
SC_ToolButtonMenu(PM_MenuButtonIndicator)PE_IndicatorButtonDropDownPE_IndicatorArrowDown
instant およびdelayed のポップアップにはメニューサブコントロールがないため、QCommonStyle は代わりにボタンの矩形の隅にPE_IndicatorArrowDown を描画します。サイズヒントにはCT_ToolButton が使用され、ボタンはSH_ToolButton_PopupDelay およびSH_ToolButtonStyle を参照します。ツールバー内のツールボタンは、ツールバーからアイコンサイズを取得します。スタンドアロンのボタンはPM_ButtonIconSize を使用します。

QToolButton 以下の状態フラグを設定します:
| 状態 | 設定される条件 |
|---|---|
State_AutoRaise | autoRaise プロパティが設定されたとき。 |
State_Raised | ボタンがチェックされておらず、押されてもいない場合。その後、State_AutoRaise が設定されており、マウスがボタンの上になければ、QCommonStyle によってこのフラグは再びクリアされます。 |
State_Sunken | ボタンが押されているか、そのメニューが表示されているとき。 |
State_On | ボタンがチェック可能であり、かつチェックされているとき。 |
QStyleOptionToolButton のその他のメンバは次のとおりです。
| メンバ | 説明 |
|---|---|
| arrowType | Qt::ArrowType の値で、アイコンの代わりに描画される矢印の方向を指定します(該当する場合)。 |
| features | QStyleOptionToolButton::ToolButtonFeature 列挙型のフラグ:ボタンに矢印を表示するか、メニューボタンを備えるか、または遅延ポップアップを持つかを指定します。 |
| font | ボタンのラベルのQFont 。 |
| icon | ボタンのQIcon 。 |
| iconSize | アイコンのサイズ。 |
| pos | QWidget::pos() によって指定されるボタンの位置。 |
| text | ボタンのテキスト。 |
| toolButtonStyle | ボタンにアイコン、テキスト、あるいはその両方を表示するかを決定するQt::ToolButtonStyle の値。 |
コンボボックス
QComboBox CC_ComboBox および を使用して、ボタンとラベルを描画します。どちらも を使用します。 は、編集可能なボックスのラベルのテキストを省略し、 の子要素がそれを描画します。 ポップアップリストはCE_ComboBoxLabel QStyleOptionComboBox QCommonStyle QLineEdit デリゲートによって描画されるアイテムビューですが、スタイルは ` ` を使用してそのサイズと位置を制御します。編集可能なボックスの場合、スタイルは ` ` を使用してラインエディットの配置を決定します。フィールド自体は ` ` の子要素です。SC_ComboBoxListBoxPopup SC_ComboBoxEditField QLineEdit
CC_ComboBox(PM_ComboBoxFrameWidth)SC_ComboBoxFrameSC_ComboBoxArrow(PE_IndicatorArrowDown)SC_ComboBoxEditFieldSC_ComboBoxListBoxPopup、ポップアップの位置決め用
CE_ComboBoxLabel(SC_ComboBoxEditField)
サイズヒントには `CT_ComboBox` が使用されます。`SH_ComboBox_Popup`、`SH_ComboBox_PopupFrameStyle`、`SH_ComboBox_UseNativePopup ` などのスタイルヒントは、ポップアップの外観や動作を決定します。

QComboBox 以下の状態フラグを設定します:
| 状態 | 設定される条件 |
|---|---|
State_Selected | ボックスが編集不可で、フォーカスが当たっている場合。 |
State_Sunken | SC_ComboBoxArrow がアクティブな場合。 |
State_On | ポップアップリストが表示されているとき。 |
QStyleOptionComboBox のその他のプロパティは以下の通りです:
| メンバー | 説明 |
|---|---|
| currentIcon | 現在の項目のアイコン。 |
| currentText | 現在の項目のテキスト。 |
| editable | コンボボックスが編集可能かどうか。 |
| frame | コンボボックスに枠があるかどうか。 |
| iconSize | 現在の項目のアイコンのサイズ。 |
| popupRect | ポップアップリストの境界矩形。 |
| textAlignment | ラベル内のテキストの配置。 |
スピンボックス
QSpinBox、QDoubleSpinBox 、およびQDateTimeEdit は、QStyleOptionSpinBox を使用してCC_SpinBox を描画します。editフィールドはQLineEdit の子要素であり、このスタイルはSC_SpinBoxEditField に対してそのジオメトリを返します。
CC_SpinBox(PM_SpinBoxFrameWidth)SC_SpinBoxFrameSC_SpinBoxUpPE_PanelButtonBevelPE_IndicatorSpinUpまたはPE_IndicatorSpinPlus。これは、buttonSymbols
SC_SpinBoxDownPE_PanelButtonBevelPE_IndicatorSpinDownまたはPE_IndicatorSpinMinus
SC_SpinBoxEditField
スタイルは、必ずしも `PE_PanelButtonBevel` を使用してボタンパネルを描画する必要はありません。サイズヒントには `CT_SpinBox` が使用され、ウィジェットは `SH_SpinBox_ButtonsInsideFrame`、`SH_SpinBox_StepModifier`、`SH_SpinControls_DisableOnBounds` などのヒントを参照します。

スピンボックスは、この状態フラグを設定します:
| 状態 | 設定される条件 |
|---|---|
State_Sunken | SC_SpinBoxUp またはSC_SpinBoxDown サブコントロールが押されたとき。 |
QStyleOptionSpinBox のその他のメンバーは以下の通りです:
| メンバー | 説明 |
|---|---|
| frame | スピンボックスに枠線を表示するかどうか。 |
| buttonSymbols | QAbstractSpinBox::ButtonSymbols の値で、ボタンに表示される記号(矢印、プラス、マイナス、またはなし)を選択します。 |
| stepEnabled | QAbstractSpinBox::StepEnabled どのボタンで値をステップ操作できるかを指定するフラグ。ステップ操作ができないボタンは、無効な状態として描画されます。 |
スライダー
QSlider `CC_Slider `を`QStyleOptionSlider`で描画します。サイズヒントは`PM_SliderThickness `および`CT_Slider`から、最小サイズヒントは`PM_SliderLength`から算出されます。
CC_Slider(PM_SliderLength,PM_SliderControlThickness,PM_SliderTickmarkOffset,PM_SliderSpaceAvailable)SC_SliderGrooveSC_SliderHandleSC_SliderTickmarks
QCommonStyle 目盛り線のみを描画します。溝とハンドルは常にスタイルに依存します。スタイルは、SC_SliderTickmarks に対して矩形を返す必要はありません。Fusion は空の矩形を返し、スクリーンショットで囲まれた領域内に、ハンドルの下に目盛り線を描画します。ウィジェットはSH_Slider_AbsoluteSetButtons 、SH_Slider_PageSetButtons 、およびSH_Slider_SnapToValue を参照します。

QDial は同じオプションを使用し、サブコントロールSC_DialGroove 、SC_DialHandle 、およびSC_DialTickmarks を使用してCC_Dial を描画します。
QSlider 以下の状態フラグを設定します:
| 状態 | 設定条件 |
|---|---|
State_Horizontal | スライダーが水平なとき。 |
State_Sunken | グルーブを含め、いずれかのサブコントロールが押されたとき。activeSubControls がどのサブコントロールかを指定します。 |
QStyleOptionSlider すべてのQAbstractSliderを処理します。そのメンバーは以下の通りです:
| メンバ | 説明 |
|---|---|
| orientation | Qt::Orientation の値:verticalまたはhorizontal。 |
| minimum | 最小値。 |
| maximum | 最大値。 |
| tickPosition | 目盛りが描画される位置を示すQSlider::TickPosition 値。 |
| tickInterval | 目盛りの間隔(スライダーの値単位)。 |
| upsideDown | 値が増加する方向。すべての抽象スライダーは、QStyleOption::direction の代わりにこのメンバを使用します。 |
| sliderPosition | ハンドルの位置を、スライダー値として表したもの。tracking が有効な間はsliderValue と等しくなります。それ以外の場合は、ハンドルを離したときにのみ値が更新されます。 |
| sliderValue | 現在の値。 |
| singleStep | 矢印キーの押下など、1回の操作で値が変化する量。 |
| pageStep | グルーブ内のクリックなど、1ページ分のステップごとに値が変化する量。 |
| notchTarget | ノッチ間の推奨距離(ピクセル単位)。QDial で使用されます。 |
| dialWrapping | ダイヤルがループするかどうか。QDial で使用されます。 |
| keyboardModifiers | 修飾キーの変更によってドラッグの挙動が変わるスタイルの場合、前回のマウスイベント発生時に押されていた修飾キー。 |
スクロールバー
QScrollBar `QStyleOptionSlider` を使用して `CC_ScrollBar ` を描画します。ユーザーがスライダーをドラッグしている間、ポインタがバーの外側で `PM_MaximumDragDistance ` を超えて移動した場合、バーは値を元の位置に戻します。
CC_ScrollBar(PM_ScrollBarExtent,PM_ScrollBarSliderMin)SC_ScrollBarGrooveSC_ScrollBarSubLine(CE_ScrollBarSubLine)SC_ScrollBarAddLine(CE_ScrollBarAddLine)SC_ScrollBarSubPage(CE_ScrollBarSubPage)SC_ScrollBarAddPage(CE_ScrollBarAddPage)SC_ScrollBarFirst(CE_ScrollBarFirst)SC_ScrollBarLast(CE_ScrollBarLast)SC_ScrollBarSlider(CE_ScrollBarSlider)PE_FrameFocusRect
QCommonStyle 各サブコントロールを、同名のコントロール要素で描画します。一部のスタイルでは、線インジケータを `PE_IndicatorArrowUp ` およびその他の矢印プリミティブで描画し、ページ領域を `PE_PanelButtonBevel` で描画しますが、これは個々のスタイルに依存します。`SC_ScrollBarFirst ` および `SC_ScrollBarLast ` は、端へジャンプするためのオプションのボタンですが、ほとんどのスタイルではこれらに対して空の矩形を返します。サイズヒントには `CT_ScrollBar` が使用され、動作ヒントには `SH_ScrollBar_LeftClickAbsolutePosition`、`SH_ScrollBar_ContextMenu`、および `SH_ScrollBar_Transient` が含まれます。

QScrollBar 以下の状態フラグを設定します:
| 状態 | 設定される条件 |
|---|---|
State_Horizontal | スクロールバーが水平の場合。 |
State_Sunken | サブコントロールが押下されており、ポインタがそこから離れていないとき。 |
State_On | バーが、現在表示されている一時的なスクロールバーである場合。 |
QStyleOptionSlider のメンバーは、「スライダー」の下にリストされています。sliderPosition 、sliderValue 、pageStep 、およびupsideDown は、ハンドルのサイズと位置を決定します。
プログレスバー
QProgressBar は、QStyleOptionProgressBar を持つCE_ProgressBar という 1 つのコントロール要素を描画します。QCommonStyle は、これを溝、内容、およびラベルに分割します:
CE_ProgressBarCE_ProgressBarGroove(SE_ProgressBarGroove)CE_ProgressBarContents(SE_ProgressBarContents,PM_ProgressBarChunkWidth)CE_ProgressBarLabel(SE_ProgressBarLabel)
コンテンツをチャンクの列として描画するスタイルでは、PE_IndicatorProgressChunk が使用されます。QCommonStyle および Fusion では、グルーヴ、コンテンツ、ラベルのすべてが小節全体を占めます。ラベルはコンテンツの上に中央揃えで描画されるテキストであるため、その矩形は独立した領域ではありません。 サイズヒントにはCT_ProgressBar が使用されます。ビジーインジケーター(最小値と最大値がともにゼロの小節)は、このスタイルによってアニメーション表示されます。

QProgressBar この状態フラグを設定します:
| 状態 | 以下の場合に設定される |
|---|---|
State_Horizontal | バーが水平の場合。 |
QStyleOptionProgressBar のその他のメンバーは以下の通りです:
| メンバ | 説明 |
|---|---|
| minimum | 最小値。 |
| maximum | 最大値。 |
| progress | 現在の値。 |
| text | ラベルテキスト。 |
| textAlignmentラベル内のテキストの配置。 | ラベル内のテキストの配置。 |
| textVisible | ラベルを描画するかどうか。 |
| invertedAppearance | バーが反対側の端から塗りつぶされるかどうか。たとえば、水平バーの場合は右から左へ塗りつぶされます。 |
| bottomToTop | 縦棒のラベルが、下から上に向かって読めるように回転されるかどうか。 |
「ウィジェットスタイルリファレンス」、「コンテナとウィンドウのスタイル設定」、「メニューとアイテムビューのスタイル設定」も参照してください 。
© 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.