QScrollBar Class
QScrollBar ウィジェットは、垂直または水平スクロールバーを提供します。詳細...
ヘッダ | #include <QScrollBar> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
継承: | QAbstractSlider |
パブリック関数
QScrollBar(QWidget *parent = nullptr) | |
QScrollBar(Qt::Orientation orientation, QWidget *parent = nullptr) | |
virtual | ~QScrollBar() |
再実装パブリック関数
保護された関数
virtual void | initStyleOption(QStyleOptionSlider *option) const |
再実装された保護された関数
virtual void | contextMenuEvent(QContextMenuEvent *event) override |
virtual void | hideEvent(QHideEvent *) override |
virtual void | mouseMoveEvent(QMouseEvent *e) override |
virtual void | mousePressEvent(QMouseEvent *e) override |
virtual void | mouseReleaseEvent(QMouseEvent *e) override |
virtual void | paintEvent(QPaintEvent *) override |
virtual void | sliderChange(QAbstractSlider::SliderChange change) override |
virtual void | wheelEvent(QWheelEvent *event) override |
詳しい説明
スクロールバーは、ユーザがドキュメントの一部にアクセスするためのコントロールです。これは、ドキュメント内のユーザの現在位置と、ドキュメントの表示量を視覚的に示すものです。スクロールバーは通常、より正確なナビゲーションを可能にする他のコントロールを備えています。Qt では、各プラットフォームに適した方法でスクロール・バーを表示します。
他のウィジェットにスクロール・ビューを提供する必要がある場合は、QScrollArea クラスを使用する方が便利です。これは、ビューポート・ウィジェットとスクロール・バーを提供するからです。QScrollBar は、QAbstractScrollArea を使用する特殊なウィジェットに対して同様の機能を実装する必要がある場合に便利です。例えば、QAbstractItemView をサブクラス化する場合などです。スライダーコントロールが指定された範囲内の値を取得するために使用される他のほとんどの状況では、QSlider クラスの方がニーズに適しているかもしれません。
スライダー、スクロール矢印、ページコントロールです。
|
各スクロール・バーには、スライダーがスクロール・バーの開始位置からどのくらい離れているかを示す値があります。この値は、value() で取得し、setValue() で設定します。この値は常に、minimum() からmaximum() までの、スクロールバーに定義された値の範囲内にある。許容値の範囲は、setMinimum() およびsetMaximum() で設定できる。最小値では、スライダーの上端 (垂直スクロールバーの場合) または左端 (水平スクロールバーの場合) がスクロールバーの上端 (または左端) になります。最大値では、スライダーの下端(または右端)はスクロールバーの下端(または右端)になります。
スライダーの長さは通常、ページステップの値に関連しており、通常、スクロールビューで表示されるドキュメント領域の割合を表します。ページステップは、ユーザーがPage Up とPage Down キーを押したときに値が変化する量であり、setPageStep() で設定される。行ステップで定義された値に対するより小さな変更はカーソル・キーを使って行われ、この量はsetSingleStep ()で設定される。
使用される値の範囲は、スクロールバー・ウィジェットの実際のサイズとは無関係であることに注意。範囲とページステップの値を選択するときに、これを考慮する必要はない。
スライダーの長さを考慮する必要があるため、スクロールバーに指定される値の範囲は、QSlider の場合とは異なって決定されることがよくあります。100行のドキュメントがあり、ウィジェットに20行しか表示できない場合、ページステップを20、最小値を0、最大値を80とするスクロールバーを作成することができます。この場合、5つの "ページ "を持つスクロールバーになります。
![]() | ドキュメントの長さ、スクロールバーで使用する値の範囲、およびページステップの関係は、多くの一般的な状況では単純です。スクロールバーの値の範囲は、ドキュメントの長さを表す値から選択したページステップを引くことによって決まります。このような場合は、次の式が便利です:document length=maximum() -minimum() +pageStep()。 |
QScrollBar は整数範囲のみを提供します。QScrollBarは非常に大きな数値を扱いますが、現在の画面のスクロールバーは、約10万ピクセル以上の範囲を有用に表現できないことに注意してください。それ以上になると、ユーザーがキーボードやマウスを使ってスライダーを操作することが難しくなり、スクロール矢印の使用も制限されます。
ScrollBar はQAbstractSlider から包括的なシグナルセットを継承しています:
- valueChanged() は、スクロールバーの値が変更されたときに発行されます。tracking()は、ユーザーとの対話中にこのシグナルが発せられるかどうかを決定します。
- rangeChanged() は、スクロールバーの値の範囲が変更されたときに発せられます。
- sliderPressed() は、ユーザーがスライダーをドラッグし始めたときに発せられます。
- sliderMoved() は、ユーザーがスライダーをドラッグしたときに発せられます。
- sliderReleased() は、ユーザーがスライダーを離したときに発せられます。
- actionTriggered() は、ユーザー操作またはtriggerAction() 関数によってスクロール・バーが変更されたときに発せられます。
スクロールバーはキーボードで操作できますが、デフォルトのfocusPolicy() はQt::NoFocus です。スクロールバーでキーボード操作を有効にするにはsetFocusPolicy() を使用します:
- 左/右は、水平スクロールバーを1ステップ移動させます。
- Up/Downは、垂直スクロールバーを1ステップ移動します。
- PageUp は1ページ分上に移動します。
- PageDownは1ページ下に移動する。
- Homeは先頭(最小)に移動します。
- Endは最後(最大)に移動します。
スライダー自体は、triggerAction() 関数を使用することで、スクロールバーコントロールとのユーザーインタラクションをシミュレートして制御することができます。これは、共通の値の範囲を使用する多くの異なるウィジェットがある場合に便利です。
ほとんどのGUIスタイルでは、pageStep() の値を使用してスライダーのサイズを計算します。
QScrollArea,QSlider,QDial,QSpinBox,スライダーの例も参照してください 。
メンバ関数ドキュメント
[explicit]
QScrollBar::QScrollBar(QWidget *parent = nullptr)
垂直スクロールバーを構築する。
parent 引数はQWidget コンストラクタに送られる。
minimum のデフォルトは 0、maximum のデフォルトは 99、singleStep のサイズは 1、pageStep のサイズは 10、value の初期値は 0。
[explicit]
QScrollBar::QScrollBar(Qt::Orientation orientation, QWidget *parent = nullptr)
与えられたorientation でスクロールバーを構築する。
parent 引数はQWidget コンストラクタに渡されます。
minimum のデフォルトは 0、maximum のデフォルトは 99、singleStep のサイズは 1、pageStep のサイズは 10、value の初期値は 0 です。
[virtual noexcept]
QScrollBar::~QScrollBar()
スクロールバーを破壊する。
[override virtual protected]
void QScrollBar::contextMenuEvent(QContextMenuEvent *event)
再実装:QWidget::contextMenuEvent(QContextMenuEvent *event)。
[override virtual]
bool QScrollBar::event(QEvent *event)
再インプリメント:QAbstractSlider::event(QEvent *e).
[override virtual protected]
void QScrollBar::hideEvent(QHideEvent *)
再実装:QWidget::hideEvent(QHideEvent *event).
[virtual protected]
void QScrollBar::initStyleOption(QStyleOptionSlider *option) const
QScrollBar の値でoption を初期化する。このメソッドは、サブクラスがQStyleOptionSlider を必要とするが、すべての情報を自分で入力したくない場合に便利です。
QStyleOption::initFrom()も参照 。
[override virtual protected]
void QScrollBar::mouseMoveEvent(QMouseEvent *e)
再実装:QWidget::mouseMoveEvent(QMouseEvent *event)。
[override virtual protected]
void QScrollBar::mousePressEvent(QMouseEvent *e)
再実装:QWidget::mousePressEvent(QMouseEvent *event)。
[override virtual protected]
void QScrollBar::mouseReleaseEvent(QMouseEvent *e)
再実装:QWidget::mouseReleaseEvent(QMouseEvent *event)。
[override virtual protected]
void QScrollBar::paintEvent(QPaintEvent *)
再実装:QWidget::paintEvent(QPaintEvent *event)。
[override virtual]
QSize QScrollBar::sizeHint() const
[override virtual protected]
void QScrollBar::sliderChange(QAbstractSlider::SliderChange change)
再実装:QAbstractSlider::sliderChange(QAbstractSlider::SliderChange change).
[override virtual protected]
void QScrollBar::wheelEvent(QWheelEvent *event)
再インプリメント:QAbstractSlider::wheelEvent(QWheelEvent *e).
© 2025 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.