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つだが、1つ1つ描画するのに十分なピクセルがない場合、QDialはノッチをスキップして均一なセットを描画しようとする(例えば、2つ目か3つ目のノッチごとに描画する)。

スライダーと同様に、ダイヤルはQAbstractSlider 関数setValue() をスロットとして利用できるようにします。

ダイヤルのキーボード・インターフェースはかなりシンプルです:left/upright/down の矢印キーは、ダイヤルのvalue を定義されたsingleStep で調整し、Page UpPage Down を定義されたpageStep で調整し、HomeEnd のキーは、値を定義されたminimummaximum の値に設定します。

マウスホイールを使ってダイヤルを調整する場合、インクリメント値は、wheelScrollLinessingleSteppageStep を掛けた値のうち小さいほうで決定される。

QScrollBarQSpinBoxQSlider 、およびスライダーの例も参照してください

プロパティのドキュメント

[read-only] notchSize : const int

このプロパティは現在のノッチサイズを保持する。

ノッチサイズはピクセルではなく範囲制御単位であり、画面上のノッチサイズがnotchTarget() の近くになるsingleStep() の倍数になるように計算される。

アクセス関数:

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

QDial の値でoption を初期化する。このメソッドは、サブクラスが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).

© 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.