效果:
1、两个按键可以滑动;
2、滑动之后hover状态可以显示按键的x坐标。
代码:
//上下滑动条在ui中分别为pbSliderUp和pbSliderDown
ui->pbSliderUp->setToolTip(QString("%1").arg(ui->pbSliderUp->x()));
ui->pbSliderDown->setToolTip(QString("%1").arg(ui->pbSliderDown->x()));
//上面的滑动条
QTimer *timer = new QTimer;
connect(timer,&QTimer::timeout,this,[=]()
{
QPoint pos = QCursor::pos();
int x = pos.x();
//我也不知道为什么刚开始打印出来pos.x()的值就是为944,那我也只能按944去减了。
//所以你们设置这个的时候就先打印看下pos.x()值确定为多少再计算
if(x >=944 && x<=944+100)
{
ui->pbSliderUp->move(x-944, ui->pbSliderUp->y());
}
qDebug() <<"pb x is :"<<ui->pbSliderUp->x();
});
connect(ui->pbSliderUp, &QAbstractButton::pressed, this, [=]()
{
timer->start();
});
connect(ui->pbSliderUp, &QAbstractButton::released, this, [=]()
{
timer->stop();
ui->pbSliderUp->setToolTip(QString("%1").arg(ui->pbSliderUp->x()));
});
//下面的滑动条
QTimer *timer2 = new QTimer;
connect(timer2,&QTimer::timeout,this,[=]()
{
QPoint pos = QCursor::pos();
int x = pos.x();
if(x >=944 && x<=944+100)
{
ui->pbSliderDown->move(x-944, ui->pbSliderDown->y());
}
});
connect(ui->pbSliderDown, &QAbstractButton::pressed, this, [=]()
{
timer2->start();
});
connect(ui->pbSliderDown, &QAbstractButton::released, this, [=]()
{
timer2->stop();
ui->pbSliderDown->setToolTip(QString("%1").arg(ui->pbSliderDown->x()));
});
注意:
这个好像可有可无,是用来弄按键长时间点击用的: