目录
输入类控件QDail
例子:调整窗口不透明度
输入类控件QDail
使用QDail表示一个旋钮,通过鼠标拖动旋钮可以完成一些相关的属性。
核心属性
属性 | 说明 |
---|---|
value | 持有的数值. |
minimum | 最⼩值 |
maximum | 最⼤值 |
singleStep | 按下⽅向键的时候改变的步⻓ |
pageStep | 按下 pageUp / pageDown 的时候改变的步⻓ |
sliderPosition | 界⾯上旋钮显⽰的 初始位置 |
tracking | 外观是否会跟踪数值变化. 默认值为 true. ⼀般不需要修改. |
wrapping | 是否允许循环调整. 即数值如果超过最⼤值, 是否允许回到最⼩值. (调整过程能否 "套圈") |
notchesVisible | 是否显⽰ 刻度线 |
notchTarget | 刻度线之间的相对位置. 数字越⼤, 刻度线越稀疏 |
核心信号
信号 | 说明 |
---|---|
valueChanged(int) | 数值改变时触发 |
rangeChanged(int, int) | 范围变化时触发 |
例子:调整窗口不透明度
(1)设置一个旋钮和一个标签
(2)初始化旋钮和label
(3)设置旋钮的valueChanged slot函数
不透明度数值是一个 0 - 1 之间的小数:
- 1 完全不透明
- 0 完全透明
(4)代码实现
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//设置可以循环的旋钮
ui->dial->setWrapping(true);
//设置刻度线可见
ui->dial->setNotchesVisible(true);
//设置最大值
ui->dial->setMaximum(100);
//设置最小值
ui->dial->setMinimum(0);
//设置旋钮的初始值
ui->dial->setValue(100);
//初始化label
ui->label->setText(QString("当前不透明:") + QString::number(ui->dial->value()));
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_dial_valueChanged(int value)
{
//改变label
ui->label->setText(QString("当前不透明度:") + QString::number(value));
//修改不透明度
this->setWindowOpacity((double)value / 100);
}