このページでは

QDial Class

QDial クラスは、丸みを帯びた範囲制御(スピードメーターやポテンショメータのようなもの)を提供します。詳細...

ヘッダー: #include <QDial>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承元: QAbstractSlider

プロパティ

パブリック関数

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.