QDial表示一个拨号旋钮。有些程序通过鼠标拖动旋钮,即可完成一些相应的设置。
1.核心属性
| 属性 | 说明 |
|---|---|
| value | 持有的数值 |
| minimum | 最小值 |
| maximum | 最大值 |
| singleStep | 按下方向键的时候改变的步长 |
| pageStep | 按下pageUp/pageDown的时候改变的步长 |
| sliderPosition | 界面上旋钮显示的初始位置 |
| tracking | 外观是否跟踪数值变化。默认值为true,一般不需要修改。 |
| wrapping | 是否允许循环调整。即数值如果超过最大值,是否允许回到最小值。 |
| notchesVisible | 是否显示刻度线 |
| notchTarget | 刻度线之间的相对位置。数字越大,刻度线越稀疏。 |
2.核心信号
| 属性 | 说明 |
|---|---|
| valueChanged(int) | 数值改变时触发 |
| rangeChanged(int,int) | 范围变化时触发 |
在界面上创建一个旋钮和一个label
//编写widge.cpp对旋钮初始化
Widget::Widget(QWidget* parent)
:QWidget(parent)
,ui(new Ui::Widget)
{
ui->setupUi(this);
//设置可以循环旋钮
ui->dial->setWrapping(true);
//设置刻度线
ui->dial->setNotchesVisible(true);
//设置最大值为100
ui->dial->setMaximum(100);
//设置最小值为0
ui->dial->setMinimum(0);
//设置初始值为100
ui->dial->setValue(100);
}
3.案例
编写widget.cpp,设置旋纽的valueChanged slot函数
void Widget::on_dial_valueChanged(int value)
{
ui->label->setText(QString("当前不透明度为:") + QString::number(value));
this->setWindowOpacity((double)value/100);
}
运行程序,观察效果,可以看到随着旋钮的旋转,不透明度发生明显的变化。