このページでは

ボタンおよび入力ウィジェットのスタイル設定

このページは「ウィジェットスタイルリファレンス」の一部です。要素ツリー、スクリーンショット、および表に関する説明については、当該ページを参照してください。すべてのウィジェットが設定する共通の状態フラグおよびメンバーについては、「スタイルによるウィジェットの描画方法」に記載されています。

プッシュボタン

QPushButton は、QStyleOptionButton を持つ単一のコントロール要素CE_PushButton を描画します。QCommonStyle は、これをベベル、ラベル、およびフォーカスフレームに分割します:

  • CE_PushButton
    • CE_PushButtonBevel (PM_ButtonDefaultIndicator,PM_MenuButtonIndicator)
      • PE_FrameDefaultButton、デフォルトのボタンについては
      • PE_PanelButtonCommand
      • PE_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 だけ縮小されます。

面取りが施され、ラベルとフォーカス用の矩形が輪郭で囲まれた2つの押しボタン

QPushButton 以下の状態フラグを設定します:

状態設定される条件
State_Sunkenボタンが押されたとき、またはそのメニューが表示されたとき。
State_Onボタンがチェックされている。
State_Raisedボタンがフラット状態でなく、かつ押されていないとき。

QStyleOptionButton のその他のメンバーは以下の通りです:

メンバー説明
機能QStyleOptionButton::ButtonFeature 列挙型のフラグで、ボタンを「フラット」、「デフォルト」、「自動デフォルト」、「メニュー付き」、または「コマンドリンクボタン」として記述します。
iconボタンにQIcon がある場合、その値。
iconSizeアイコンのサイズ。
textボタンのテキスト。

チェックボックスとラジオボタン

QCheckBox およびQRadioButton は、構造が同一です。どちらもQStyleOptionButton を使用し、CE_CheckBox またはCE_RadioButton のいずれか1つのコントロール要素を描画します。QCommonStyle は、インジケータ、ラベル、およびフォーカス枠を描画します:

  • CE_CheckBox
    • PE_IndicatorCheckBox (SE_CheckBoxIndicator,PM_IndicatorWidth,PM_IndicatorHeight)
    • CE_CheckBoxLabel (SE_CheckBoxContents,PM_CheckBoxLabelSpacing)
    • PE_FrameFocusRect (SE_CheckBoxFocusRect)
  • CE_RadioButton
    • PE_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_ToolButton
    • SC_ToolButton
      • PE_PanelButtonTool (PM_DefaultFrameWidth)
      • PE_FrameFocusRect
      • CE_ToolButtonLabel (PM_ButtonShiftHorizontal,PM_ButtonShiftVertical)
    • SC_ToolButtonMenu (PM_MenuButtonIndicator)
      • PE_IndicatorButtonDropDown
      • PE_IndicatorArrowDown

instant およびdelayed のポップアップにはメニューサブコントロールがないため、QCommonStyle は代わりにボタンの矩形の隅にPE_IndicatorArrowDown を描画します。サイズヒントにはCT_ToolButton が使用され、ボタンはSH_ToolButton_PopupDelay およびSH_ToolButtonStyle を参照します。ツールバー内のツールボタンは、ツールバーからアイコンサイズを取得します。スタンドアロンのボタンはPM_ButtonIconSize を使用します。

アイコン、テキスト、メニューインジケーターを備えたツールボタン。ボタンとメニューのサブコントロールには枠線が引かれている

QToolButton 以下の状態フラグを設定します:

状態設定される条件
State_AutoRaiseautoRaise プロパティが設定されたとき。
State_Raisedボタンがチェックされておらず、押されてもいない場合。その後、State_AutoRaise が設定されており、マウスがボタンの上になければ、QCommonStyle によってこのフラグは再びクリアされます。
State_Sunkenボタンが押されているか、そのメニューが表示されているとき。
State_Onボタンがチェック可能であり、かつチェックされているとき。

QStyleOptionToolButton のその他のメンバは次のとおりです。

メンバ説明
arrowTypeQt::ArrowType の値で、アイコンの代わりに描画される矢印の方向を指定します(該当する場合)。
featuresQStyleOptionToolButton::ToolButtonFeature 列挙型のフラグ:ボタンに矢印を表示するか、メニューボタンを備えるか、または遅延ポップアップを持つかを指定します。
fontボタンのラベルのQFont 。
iconボタンのQIcon 。
iconSizeアイコンのサイズ。
posQWidget::pos() によって指定されるボタンの位置。
textボタンのテキスト。
toolButtonStyleボタンにアイコン、テキスト、あるいはその両方を表示するかを決定するQt::ToolButtonStyle の値。

コンボボックス

QComboBox CC_ComboBox および を使用して、ボタンとラベルを描画します。どちらも を使用します。 は、編集可能なボックスのラベルのテキストを省略し、 の子要素がそれを描画します。 ポップアップリストはCE_ComboBoxLabel QStyleOptionComboBox QCommonStyle QLineEdit デリゲートによって描画されるアイテムビューですが、スタイルは ` ` を使用してそのサイズと位置を制御します。編集可能なボックスの場合、スタイルは ` ` を使用してラインエディットの配置を決定します。フィールド自体は ` ` の子要素です。SC_ComboBoxListBoxPopup SC_ComboBoxEditField QLineEdit

  • CC_ComboBox (PM_ComboBoxFrameWidth)
    • SC_ComboBoxFrame
    • SC_ComboBoxArrow (PE_IndicatorArrowDown)
    • SC_ComboBoxEditField
    • SC_ComboBoxListBoxPopup、ポップアップの位置決め用
  • CE_ComboBoxLabel (SC_ComboBoxEditField)

サイズヒントには `CT_ComboBox` が使用されます。`SH_ComboBox_Popup`、`SH_ComboBox_PopupFrameStyle`、`SH_ComboBox_UseNativePopup ` などのスタイルヒントは、ポップアップの外観や動作を決定します。

枠線、編集フィールド、矢印サブコントロールで構成されたコンボボックスの輪郭

QComboBox 以下の状態フラグを設定します:

状態設定される条件
State_Selectedボックスが編集不可で、フォーカスが当たっている場合。
State_SunkenSC_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_SpinBoxFrame
    • SC_SpinBoxUp
      • PE_PanelButtonBevel
      • PE_IndicatorSpinUp またはPE_IndicatorSpinPlus 。これは、buttonSymbols
    • SC_SpinBoxDown
      • PE_PanelButtonBevel
      • PE_IndicatorSpinDown またはPE_IndicatorSpinMinus
    • SC_SpinBoxEditField

スタイルは、必ずしも `PE_PanelButtonBevel` を使用してボタンパネルを描画する必要はありません。サイズヒントには `CT_SpinBox` が使用され、ウィジェットは `SH_SpinBox_ButtonsInsideFrame`、`SH_SpinBox_StepModifier`、`SH_SpinControls_DisableOnBounds` などのヒントを参照します。

フレーム、編集フィールド、上矢印ボタン、下矢印ボタンの各サブコントロールが枠線で囲まれたスピンボックス

スピンボックスは、この状態フラグを設定します:

状態設定される条件
State_SunkenSC_SpinBoxUp またはSC_SpinBoxDown サブコントロールが押されたとき。

QStyleOptionSpinBox のその他のメンバーは以下の通りです:

メンバー説明
frameスピンボックスに枠線を表示するかどうか。
buttonSymbolsQAbstractSpinBox::ButtonSymbols の値で、ボタンに表示される記号(矢印、プラス、マイナス、またはなし)を選択します。
stepEnabledQAbstractSpinBox::StepEnabled どのボタンで値をステップ操作できるかを指定するフラグ。ステップ操作ができないボタンは、無効な状態として描画されます。

スライダー

QSlider `CC_Slider `を`QStyleOptionSlider`で描画します。サイズヒントは`PM_SliderThickness `および`CT_Slider`から、最小サイズヒントは`PM_SliderLength`から算出されます。

  • CC_Slider (PM_SliderLength,PM_SliderControlThickness,PM_SliderTickmarkOffset,PM_SliderSpaceAvailable)
    • SC_SliderGroove
    • SC_SliderHandle
    • SC_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を処理します。そのメンバーは以下の通りです:

メンバ説明
orientationQt::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_ScrollBarGroove
    • SC_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_ProgressBar
    • CE_ProgressBarGroove (SE_ProgressBarGroove)
    • CE_ProgressBarContents (SE_ProgressBarContents,PM_ProgressBarChunkWidth)
    • CE_ProgressBarLabel (SE_ProgressBarLabel)

コンテンツをチャンクの列として描画するスタイルでは、PE_IndicatorProgressChunk が使用されます。QCommonStyle および Fusion では、グルーヴ、コンテンツ、ラベルのすべてが小節全体を占めます。ラベルはコンテンツの上に中央揃えで描画されるテキストであるため、その矩形は独立した領域ではありません。 サイズヒントにはCT_ProgressBar が使用されます。ビジーインジケーター(最小値と最大値がともにゼロの小節)は、このスタイルによってアニメーション表示されます。

プログレスバーが40%まで進み、溝、内容、ラベルの輪郭が描かれている

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.