setRange 、setMinimum()和setMaximum()用于定义滚动条的范围 、最小值、最大值。
setSingleStep每步步长(鼠标点击),默认值为1
setPageStep每页步长(按键:PAGEUP+PAGEDOWN),默认值为10,按HOME回到起点,按END回到末尾。
setvalue和setSliderPosition设置的都是当前值
setOrientation 设置slider方向 Qt::Horizontal水平,Qt::Vertical垂直
setTrucking 是否跟踪,默认为是:拖动滑块就会发出valueChanged()信号->时时刷新设置;设置否,在按键松开时发出信号
//使用事件过滤去实现Slider指哪打哪
if(((QMouseEvent *)event)->button() == Qt::LeftButton && object == ui->horizontal)
{
int max = ui->horizontal->maximum();
int min = ui->horizontal->minimum();
int pointPos = ((double)((QMouseEvent *)event)->x()) / ui->horizontal->width()*(max - min)+min;
if(abs(pointPos - ui->horizontal->value())> (ui->horizontal->pageStep()) ){
ui->horizontal->setValue(pointPos);
return true;
}
else{
return false;
}
简单样式表
QSlider::groove:horizontal {
border: 1px solid #bcbcbc;
height: 2px;
border-radius: 1px;
padding-left: -1px;
padding-right: -1px;
}
QSlider::sub-page:horizontal {
background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #B1B1B1, stop:1 #c4c4c4);
background: qlineargradient(x1: 0, y1: 0.2, x2: 1, y2: 1,
stop: 0 #5DCCFF, stop: 1 #1874CD);
}
QSlider::add-page:horizontal {
background: qlineargradient(spread:pad,x1: 0, y1: 1, x2: 0, y2: 0,
stop: 0 #bcbcbc, stop: 0.25 #bcbcbc, stop: 0.5 #bcbcbc, stop: 1 #bcbcb);
border-radius: 2px;
}