qslider 悬浮显示 鼠标所在刻度值 C++
时间: 2023-06-17 09:07:38 浏览: 105
可以通过在 QSlider 继承类中重写 `QSlider::mouseMoveEvent(QMouseEvent *event)` 方法,在鼠标移动时获取当前鼠标所在刻度值并显示。
下面是一个简单的示例:
```cpp
class CustomSlider : public QSlider
{
public:
CustomSlider(QWidget *parent = nullptr) : QSlider(parent) {}
protected:
void mouseMoveEvent(QMouseEvent *event) override
{
// 调用基类方法处理鼠标事件
QSlider::mouseMoveEvent(event);
// 获取当前鼠标所在位置的值
int value = this->valueFromPosition(event->pos());
// 在窗口中显示该值
QToolTip::showText(event->globalPos(), QString::number(value), this);
}
};
```
然后在使用时,可以将 QSlider 替换为 CustomSlider:
```cpp
CustomSlider *slider = new CustomSlider(this);
slider->setOrientation(Qt::Horizontal);
slider->setRange(0, 100);
slider->setPageStep(10);
slider->setTickInterval(10);
slider->setTickPosition(QSlider::TicksBothSides);
```
这样当鼠标移动到滑块上时,就会显示当前所在的刻度值。
阅读全文