ScrollBar QML Type
縦または横のインタラクティブスクロールバー。詳細...
| Import Statement: | import QtQuick.Controls |
| Inherits: |
プロパティ
- active : bool
- horizontal : bool
(since QtQuick.Controls 2.3 (Qt 5.10)) - interactive : bool
(since QtQuick.Controls 2.2 (Qt 5.9)) - minimumSize : real
(since QtQuick.Controls 2.4 (Qt 5.11)) - orientation : enumeration
- policy : enumeration
(since QtQuick.Controls 2.2 (Qt 5.9)) - position : real
- pressed : bool
- size : real
- snapMode : enumeration
(since QtQuick.Controls 2.2 (Qt 5.9)) - stepSize : real
- vertical : bool
(since QtQuick.Controls 2.3 (Qt 5.10)) - visualPosition : real
(since QtQuick.Controls 2.4 (Qt 5.11)) - visualSize : real
(since QtQuick.Controls 2.4 (Qt 5.11))
付属物件
- horizontal : ScrollBar
- vertical : ScrollBar
方法
詳細説明
ScrollBar は、特定の位置にスクロールするために使用できるインタラクティブなバーです。スクロールバーは、vertical またはhorizontal のどちらかであり、ListView やGridView など、任意のFlickable に取り付けることができます。 また、ScrollView と一緒に使用することもできます。
ScrollBar を Flickable に取り付ける
ScrollBar をvertically またはhorizontally の Flickable にアタッチすると、そのジオメトリと以下のプロパティが自動的に設定され、適宜更新されます:
アタッチされた ScrollBar は、ターゲットの Flickable に再度ペアレント化されます。垂直方向にアタッチされた ScrollBar は、Flickable の高さに合わせてサイズが変更され、layout direction に基づいて Flickable の両側に配置されます。水平方向にアタッチされた ScrollBar は、Flickable の幅に合わせてサイズが変更され、下側に配置されます。アタッチされた ScrollBar に別の親を指定することで、自動ジオメトリ管理を無効にできます。これは、ScrollBar をクリッピング Flickable の外側に配置する場合などに便利です。これは、次の例で示されています:
Flickable { id: flickable clip: true // ... ScrollBar.vertical: ScrollBar { parent: flickable.parent anchors.top: flickable.top anchors.left: flickable.right anchors.bottom: flickable.bottom } }
ScrollBar は、アタッチされている Flickable のキーイベントをフィルタリングしないことに注意してください。次の例は、上下キーによるスクロールを実装する方法を示しています:
Flickable { focus: true Keys.onUpPressed: scrollBar.decrease() Keys.onDownPressed: scrollBar.increase() ScrollBar.vertical: ScrollBar { id: scrollBar } }
水平スクロールバーと垂直スクロールバーのアクティブ状態のバインド
デフォルトでは、水平スクロールバーと垂直スクロールバーは、active の状態を共有しません。どちらかの方向にスクロールしている間、両方のバーを表示し続けるには、次の例で示すように、アクティブな状態の間で双方向のバインドを確立します:
Flickable { anchors.fill: parent contentWidth: parent.width * 2 contentHeight: parent.height * 2 ScrollBar.horizontal: ScrollBar { id: hbar; active: vbar.active } ScrollBar.vertical: ScrollBar { id: vbar; active: hbar.active } }
アタッチされていないスクロールバー
アタッチされたプロパティ API を使用せずに ScrollBar のインスタンスを作成することもできます。これは、アタッチされたスクロールバーの動作が十分でない場合や、Flickable を使用していない場合に便利です。次の例では、Flickable を使用せずに、水平スクロールバーと垂直スクロールバーを使用してテキストをスクロールしています:
Rectangle { id: frame clip: true width: 160 height: 160 border.color: "black" anchors.centerIn: parent Text { id: content text: "ABC" font.pixelSize: 160 x: -hbar.position * width y: -vbar.position * height } ScrollBar { id: vbar hoverEnabled: true active: hovered || pressed orientation: Qt.Vertical size: frame.height / content.height anchors.top: parent.top anchors.right: parent.right anchors.bottom: parent.bottom } ScrollBar { id: hbar hoverEnabled: true active: hovered || pressed orientation: Qt.Horizontal size: frame.width / content.width anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom } }

付属していないスクロールバーを使用する場合は、以下を手動で行う必要があります:
- スクロールバーをレイアウトする(例えば、x とy またはanchors プロパティで)。
- size およびposition プロパティを設定して、スクロールされたアイテムに対するスクロールバーのサイズと位置を決定します。
- active プロパティを設定して、スクロールバーが表示されるタイミングを決定します。
デリゲートサイズの変更
デリゲートのサイズがまちまちだと、新しいデリゲートがビューに読み込まれるときに ScrollBar が "飛び回る" ことがあります。このため、同じサイズのデリゲートを使用することをお勧めします。詳細はVariable Delegate Size and Section Labels を参照してください。
ScrollIndicator 、ScrollView 、ScrollBar のカスタマイズ、およびインジケータ コントロールも参照してください 。
プロパティのドキュメント
active : bool
このプロパティは、スクロール・バーがアクティブであるかどうか、つまり、pressed 、または付属のFlickableがmoving 。
どちらの方向にスクロールしても、both horizontal and vertical bars visible 。
このプロパティは、スクロールバーがattached to a flickable のときに自動的に設定されます。
horizontal : bool [read-only, since QtQuick.Controls 2.3 (Qt 5.10)]
このプロパティは、スクロールバーが水平かどうかを保持します。
このプロパティは QtQuick.Controls 2.3 (Qt 5.10) で導入されました。
orientationも参照してください 。
interactive : bool [since QtQuick.Controls 2.2 (Qt 5.9)]
このプロパティは、スクロールバーがインタラクティブかどうかを保持する。デフォルト値はtrue である。
非対話型スクロール・バーは、視覚的にも動作的にもScrollIndicator に似ています。このプロパティは、対話型スクロール・バーと非対話型スクロール・バーをそれぞれ持つ、典型的なマウス指向とタッチ指向の UI を切り替えるのに便利です。
このプロパティは QtQuick.Controls 2.2 (Qt 5.9) で導入されました。
minimumSize : real [since QtQuick.Controls 2.4 (Qt 5.11)]
このプロパティは、スクロールバーの最小サイズを保持し、0.0 - 1.0 にスケーリングされます。
このプロパティは QtQuick.Controls 2.4 (Qt 5.11) で導入されました。
size,visualSize,visualPositionも参照してください 。
orientation : enumeration
このプロパティは、スクロールバーの向きを保持する。
可能な値
| 定数 | 説明 |
|---|---|
Qt.Horizontal | 水平 |
Qt.Vertical | 垂直(デフォルト) |
このプロパティは、スクロールバーがattached to a flickable であるときに自動的に設定されます。
horizontal およびverticalも参照してください 。
policy : enumeration [since QtQuick.Controls 2.2 (Qt 5.9)]
このプロパティはスクロールバーのポリシーを保持する。デフォルトのポリシーはScrollBar.AsNeeded です。
可能な値
| 定数 | 説明 |
|---|---|
ScrollBar.AsNeeded | スクロールバーは、コンテンツが大きすぎて収まらない場合にのみ表示されます。 |
ScrollBar.AlwaysOff | スクロールバーは表示されません。 |
ScrollBar.AlwaysOn | スクロールバーは常に表示される。 |
以下の例では、垂直スクロールバーは常に表示されます:
スタイルは、一時的なスクロールバーを実装するために、このプロパティをactive プロパティと組み合わせて使用することができます。トランジェント・スクロールバーは、最後のインタラクション・イベント(ホバーまたはプレス)の直後に非表示になります。これは通常、スクロールバーの不透明度をアニメーション化することによって行われます。この動作をオーバーライドするには、ビューと比較したコンテンツのサイズに応じて、ポリシーをScrollBar.AlwaysOn またはScrollBar.AlwaysOff に設定します。例えば、垂直のListView の場合:
policy: listView.contentHeight > listView.height ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff
このプロパティは QtQuick.Controls 2.2 (Qt 5.9) で導入されました。
position : real
このプロパティは、0.0 - 1.0 にスケーリングされたスクロールバーの位置を保持する。
最大の有効なスクロールバー位置は(1.0 - size) です。これは、スクロールバーを端に移動すると、ドキュメントの端が接続されたFlickableの可視領域の下端に置かれるような、最も使用される場合の正しい動作を与えます。
このプロパティは、スクロールバーがattached to a flickable のときに自動的に設定されます。
Flickable::visibleArea およびvisualPositionも参照して ください。
pressed : bool
このプロパティは、スクロールバーが押されているかどうかを保持する。
size : real
このプロパティは、スクロールバーのサイズを保持し、0.0 - 1.0 にスケーリングされる。
このプロパティは、スクロールバーがattached to a flickable であるときに自動的に設定されます。
Flickable::visibleArea,minimumSize,visualSizeも参照してください 。
snapMode : enumeration [since QtQuick.Controls 2.2 (Qt 5.9)]
このプロパティはスナップモードを保持する。
可能な値
| 定数 | 説明 |
|---|---|
ScrollBar.NoSnap | スクロールバーはスナップしない(デフォルト)。 |
ScrollBar.SnapAlways | スクロールバーはドラッグ中にスナップする。 |
ScrollBar.SnapOnRelease | スクロールバーはドラッグされている間はスナップせず、放された後にのみスナップする。 |
次の表では、さまざまなモードがアニメーションで説明されています。動きとstepSize (0.25) は各アニメーションで同じです。
| 値 | 例 |
ScrollBar.NoSnap | |
ScrollBar.SnapAlways | |
ScrollBar.SnapOnRelease |
このプロパティは QtQuick.Controls 2.2 (Qt 5.9) で導入されました。
stepSizeも参照してください 。
stepSize : real
このプロパティはステップサイズを保持する。デフォルト値は0.0 である。
snapMode 、increase()、decrease()も参照のこと 。
vertical : bool [read-only, since QtQuick.Controls 2.3 (Qt 5.10)]
このプロパティは、スクロールバーが垂直かどうかを保持します。
このプロパティは QtQuick.Controls 2.3 (Qt 5.10) で導入されました。
orientationも参照してください 。
visualPosition : real [read-only, since QtQuick.Controls 2.4 (Qt 5.11)]
このプロパティは、minimum size によって制限されるスクロールバーの有効な視覚的位置を保持します。
このプロパティは QtQuick.Controls 2.4 (Qt 5.11) で導入されました。
position およびminimumSizeも参照してください 。
visualSize : real [read-only, since QtQuick.Controls 2.4 (Qt 5.11)]
このプロパティは、minimum size によって制限されるスクロールバーの有効な視覚的サイズを保持します。
このプロパティは QtQuick.Controls 2.4 (Qt 5.11) で導入されました。
size およびminimumSizeも参照してください 。
Attached Property ドキュメント
ScrollBar.horizontal : ScrollBar
このプロパティは、Flickable に水平スクロールバーを取り付けます。
Attaching ScrollBar to a Flickableも参照 。
ScrollBar.vertical : ScrollBar
このプロパティは、Flickable に垂直スクロールバーを取り付けます。
Attaching ScrollBar to a Flickableも参照 。
メソッド・ドキュメント
void decrease()
stepSize またはstepSize が0.0 の場合は0.1 だけポジションを下げる。
stepSizeも参照 。
void increase()
stepSize またはstepSize が0.0 の場合は0.1 だけポジションを上げる。
stepSizeも参照 。
© 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.