QSlider基础

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;  
}  
  


猜你喜欢

转载自blog.csdn.net/qq_42100881/article/details/80163230