主要实现QSlider的自定义,控件提升:
1.首先 添加new 文件:选择c++类:
项目建立后:需要指定父对象:
MySlider(QWidget *parent = nullptr);//需要指定父对象
2.在主界面的控件QSlider,点击右键“提升为”
这样就实现了控件的自定义,可以重写鼠标等事件:
如下:
void MySlider::mousePressEvent(QMouseEvent* ev)
{
//获取当前点击位置,得到的这个鼠标坐标是相对于当前QSlider的坐标
int currentX = ev->pos().x();
//获取当前点击的位置占整个Slider的百分比
double per = currentX *1.0 /this->width();
//利用算得的百分比得到具体数字
int value = per*(this->maximum() - this->minimum()) + this->minimum();
qDebug()<<value<<endl;
//设定滑动条位置
this->setValue(value);
}
3.信号槽的使用:检查是否添加Q_OBJECT,手动添加后,注意删除临时文件后重新编译