QDial类
QDial类提供了一个圆形范围控件(如速度计或电位器)。更多...
头文件 | #include <QDial> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake | QT += widgets |
继承 | QAbstractSlider |
属性
- notchSize : const int
- notchTarget : qreal
- notchesVisible : bool
- wrapping : bool
公共函数
QDial(QWidget *parent = nullptr) | |
虚拟 | ~QDial() |
int | notchSize() const |
qreal | notchTarget() const |
bool | notchesVisible() const |
void | setNotchTarget(double target) |
bool | wrapping() const |
重实现的公共函数
虚拟 | minimumSizeHint() const override |
虚拟 | sizeHint() const override |
公共槽
void | setNotchesVisible(bool visible) |
void | setWrapping(bool on) |
保护函数
虚拟 | initStyleOption(QStyleOptionSlider *option) const |
重实现的保护函数
虚拟 | event(QEvent *e) override |
虚拟 | mouseMoveEvent(QMouseEvent *e) override |
虚拟 | mousePressEvent(QMouseEvent *e) override |
虚拟 | mouseReleaseEvent(QMouseEvent *e) override |
虚拟 | paintEvent(QPaintEvent *pe) override |
虚拟 | resizeEvent(QResizeEvent *e) override |
虚拟 | sliderChange(QAbstractSlider::SliderChange change) override |
详细描述
当用户需要在程序定义的范围内控制一个值时,会使用QDial,范围可以环绕(例如,角度从0度到359度)或对话框布局需要正方形小部件。
由于QDial继承自QAbstractSlider,其行为与滑动条相似。当wrapping() 为假(默认设置)时,滑动条和旋钮之间没有真正区别。它们都共享相同的信号、槽和成员函数。您使用哪种取决于用户的期望和应用程序的类型。
初始时,旋钮在滑动条移动时连续发出 valueChanged() 信号;您可以通过禁用 tracking 属性来减少信号的发出频率。即使在禁用跟踪时,sliderMoved() 信号也会连续发出。
当鼠标按钮按下和释放时,旋钮还会发出 sliderPressed() 和 sliderReleased() 信号。请注意,由于键盘和鼠标滚轮也可以用来更改值,旋钮的值可能会改变而不会发出这些信号。
与滑动条不同,QDial尝试绘制合适的刻度数,而不是每行一步一个。如果可能,绘制的刻度数与每行一步一个相匹配,但如果没有足够的像素绘制每个刻度,QDial将跳过一些刻度,以尝试绘制一个均匀的集合(例如,绘制每第二个或第三个刻度)。
与滑动条一样,旋钮将 QAbstractSlider 函数 setValue() 作为槽提供。
旋钮的键盘界面相当简单:左/上和右/下箭头键通过定义的 singleStep 调整旋钮的 value,Page Up 和 Page Down 通过定义的 pageStep,而 Home 和 End 键将值设置为定义的 minimum 和 maximum 值。
如果您使用鼠标滚轮调整旋钮,则增量值由 wheelScrollLines 乘以 singleStep 和 pageStep 中的较小值确定。
另请参阅 QScrollBar、QSpinBox、QSlider 和 滑动条示例。
属性文档
[只读]
notchSize : const 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) |
成员函数文档
[显式]
QDial::QDial(QWidget *parent = nullptr)
构建一个仪表。
parent参数会传递给QAbstractSlider构造函数。
[虚,空操作异常]
QDial::~QDial()
销毁仪表。
[重写虚保护]
bool QDial::event(QEvent *e)
重新实现了:QAbstractSlider::event(QEvent *e)。
[虚保护]
void QDial::initStyleOption(QStyleOptionSlider *option) const
使用此QDial的值来初始化option。当子类需要QStyleOptionSlider但不希望自己填写所有信息时,此方法非常有用。
[重写虚]
QSize QDial::minimumSizeHint() const
重新实现了属性访问函数:QWidget::minimumSizeHint。
[重写虚保护]
void QDial::mouseMoveEvent(QMouseEvent *e)
重新实现了:QWidget::mouseMoveEvent(QMouseEvent *event)。
[重写虚保护]
void QDial::mousePressEvent(QMouseEvent *e)
重新实现了:QWidget::mousePressEvent(QMouseEvent *event)。
[重写虚保护]
void QDial::mouseReleaseEvent(QMouseEvent *e)
重新实现了:QWidget::mouseReleaseEvent(QMouseEvent *event)。
[重写虚保护]
void QDial::paintEvent(QPaintEvent *pe)
重实现了: QWidget::paintEvent(QPaintEvent *event).
[重写虚保护]
void QDial::resizeEvent(QResizeEvent *e)
重实现了: QWidget::resizeEvent(QResizeEvent *event).
[重写虚]
QSize QDial::sizeHint() const
重实现了对属性的保护函数: QWidget::sizeHint.
[重写虚保护]
void QDial::sliderChange(QAbstractSlider::SliderChange change)
重实现了: QAbstractSlider::sliderChange(QAbstractSlider::SliderChange change).
© 2024 The Qt Company Ltd. 本文档中的贡献版权属于各自的拥有者。本提供的文档是根据由自由软件基金会发布的 GNU自由文档许可协议版本1.3 的条款许可的。Qt及其相关标志是芬兰及其它国家/地区的The Qt Company Ltd.的商标。所有其它商标均为其拥有者的财产。