QDial Class
QDial クラスは、丸みを帯びた範囲制御(スピードメーターやポテンショメータのようなもの)を提供します。詳細...
| ヘッダー: | #include <QDial> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 継承元: | QAbstractSlider |
プロパティ
- notchSize : int
- notchTarget : qreal
- notchesVisible : bool
- wrapping : bool
パブリック関数
| QDial(QWidget *parent = nullptr) | |
| virtual | ~QDial() |
| int | notchSize() const |
| qreal | notchTarget() const |
| bool | notchesVisible() const |
| void | setNotchTarget(double target) |
| bool | wrapping() const |
再実装されたパブリック関数
| virtual QSize | minimumSizeHint() const override |
| virtual QSize | sizeHint() const override |
パブリック・スロット
| void | setNotchesVisible(bool visible) |
| void | setWrapping(bool on) |
プロテクトされた関数
| virtual void | initStyleOption(QStyleOptionSlider *option) const |
再実装されたプロテクト関数
| virtual bool | event(QEvent *e) override |
| virtual void | mouseMoveEvent(QMouseEvent *e) override |
| virtual void | mousePressEvent(QMouseEvent *e) override |
| virtual void | mouseReleaseEvent(QMouseEvent *e) override |
| virtual void | paintEvent(QPaintEvent *pe) override |
| virtual void | resizeEvent(QResizeEvent *e) override |
| virtual void | sliderChange(QAbstractSlider::SliderChange change) override |
詳細な説明

QDial は、ユーザーがプログラムで定義可能な範囲内の値を制御する必要があり、その範囲がループする(たとえば、0 度から 359 度までの角度)場合や、ダイアログのレイアウトに正方形のウィジェットが必要な場合に使用されます。
QDialはQAbstractSlider を継承しているため、その動作はslider と似ています。wrapping()がfalse(デフォルト設定)の場合、スライダーとダイヤルに実質的な違いはありません。両者は同じシグナル、スロット、およびメンバ関数を共有しています。どちらを使用するかは、ユーザーの期待やアプリケーションの種類によって異なります。
ダイヤルは、スライダーが移動している間、最初はvalueChanged()シグナルを継続的に発信しますが、tracking プロパティを無効にすることで、シグナルの発信頻度を下げることができます。sliderMoved()シグナルは、トラッキングが無効になっている場合でも継続的に発信されます。
また、ダイヤルはマウスボタンが押されたときや離されたときにも、sliderPressed() およびsliderReleased() シグナルを発行します。キーボードやホイールを使用して値を変更することもできるため、これらのシグナルが発行されなくてもダイヤルの値が変更される場合があることに注意してください。
スライダーとは異なり、QDial は 1 行ステップごとに 1 つずつではなく、「見栄えの良い」数のノッチを描画しようとします。 可能であれば、描画されるノッチの数はラインステップごとに1つになりますが、すべてのノッチを描画するのに十分なピクセルがない場合、QDialはノッチをスキップして、均一なセットを描画しようとします(例えば、2つおきや3つおきにノッチを描画するなど)。
スライダーと同様に、ダイヤルではQAbstractSlider 関数setValue() をスロットとして利用できます。
ダイヤルのキーボードインターフェースは比較的単純です。left/up およびright/down の矢印キーは、定義されたsingleStep 、Page Up およびPage Down によってダイヤルのvalue を調整し、pageStep によって調整します。また、Home およびEnd キーは、定義されたminimum およびmaximum の値に設定します。
マウスホイールを使用してダイヤルを調整する場合、増分値は、wheelScrollLines とsingleStep 、およびpageStep のうち、より小さい方の値に を乗じた値によって決定されます。
QScrollBar 、QSpinBox 、QSlider 、および「スライダーの例」も参照してください 。
プロパティのドキュメント
[read-only] notchSize : int
このプロパティは、現在のノッチサイズを保持します
ノッチサイズはピクセルではなく範囲制御単位で表され、singleStep()の倍数として計算され、画面上のノッチサイズはnotchTarget()に近い値となります。
アクセス関数:
| int | notchSize() const |
notchTarget() およびsingleStep()も参照してください 。
notchTarget : qreal
このプロパティは、ノッチ間の目標ピクセル数を指定します
ノッチの目標値とは、QDial が各ノッチの間に配置しようとするピクセル数です。
実際のサイズは目標サイズと異なる場合があります。
ノッチの目標値のデフォルトは 3.7 ピクセルです。
アクセス関数:
| qreal | notchTarget() const |
| void | setNotchTarget(double target) |
notchesVisible : bool
このプロパティは、ノッチを表示するかどうかを決定します
このプロパティがtrue に設定されている場合、利用可能な値の範囲を示すために、ダイヤルの周囲に一連の目盛りが描画されます。そうでない場合は、目盛りは表示されません。
デフォルトでは、このプロパティは無効になっています。
アクセス関数:
| bool | notchesVisible() const |
| void | setNotchesVisible(bool visible) |
wrapping : bool
このプロパティは、折り返しが有効かどうかを示します
trueの場合、折り返しが有効になります。そうでない場合、有効な値の範囲の両端を区切るために、ダイヤルの下部にスペースが挿入されます。
有効の場合、矢印はダイヤル上の任意の角度に配置できます。無効の場合、矢印はダイヤルの上部に制限されます。矢印がダイヤル下部のスペースに向かって回転した場合、有効な値の範囲の最も近い端に固定されます。
デフォルトでは、このプロパティの値は `false` です。
アクセス関数:
| bool | wrapping() const |
| void | setWrapping(bool on) |
メンバ関数のドキュメント
[explicit] QDial::QDial(QWidget *parent = nullptr)
ダイヤルを生成します。
parent 引数は、QAbstractSlider コンストラクタに渡されます。
[virtual noexcept] QDial::~QDial()
ダイヤルを破壊する。
[override virtual protected] bool QDial::event(QEvent *e)
QAbstractSlider::event(QEvent *e) を再実装します。
[virtual protected] void QDial::initStyleOption(QStyleOptionSlider *option) const
option を、QDial の値を用いて初期化します。このメソッドは、QStyleOptionSlider が必要であるものの、すべての情報を自力で設定したくないサブクラスにとって便利です。
QStyleOption::initFrom()も参照してください 。
[override virtual] QSize QDial::minimumSizeHint() const
プロパティ「QWidget::minimumSizeHint 」のアクセス関数を再実装します。
[override virtual protected] void QDial::mouseMoveEvent(QMouseEvent *e)
QWidget::mouseMoveEvent(QMouseEvent *event) を再実装します。
[override virtual protected] void QDial::mousePressEvent(QMouseEvent *e)
QWidget::mousePressEvent(QMouseEvent *event) を再実装します。
[override virtual protected] void QDial::mouseReleaseEvent(QMouseEvent *e)
QWidget::mouseReleaseEvent(QMouseEvent *event) を再実装します。
[override virtual protected] void QDial::paintEvent(QPaintEvent *pe)
QWidget::paintEvent(QPaintEvent *event) を再実装します。
[override virtual protected] void QDial::resizeEvent(QResizeEvent *e)
QWidget::resizeEvent(QResizeEvent *event) の再実装です。
[override virtual] QSize QDial::sizeHint() const
プロパティ `QWidget::sizeHint` のアクセス関数を再実装します。
[override virtual protected] void QDial::sliderChange(QAbstractSlider::SliderChange change)
QAbstractSlider::sliderChange (QAbstractSlider::SliderChange change)を再実装しています。
© 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.