请问QT中的slider控件的鼠标点击事件~!
请问QT中,我在水平slider的上,用鼠标点击一个位置,是响应什么事件呢。我想用鼠标点击一下,滑动点就移动到点击位置。谢谢。
[解决办法]
只对水平起作用,竖直的自己修改一下
需要继承自 QSlider
#ifndef OBJECT_H#define OBJECT_H#include <QSlider>#include <QMouseEvent>class Object : public QSlider { Q_OBJECTpublic: explicit Object(QWidget *parent = 0);signals:public slots:public: void mousePressEvent(QMouseEvent *ev);};#endif // OBJECT_H
[解决办法]
水平slider本身支持鼠标点击到哪儿就滑动到哪儿的功能。点击鼠标滑动的时候,会触发valueChanged ( int value ) 信号,通过这个信号可以获得当前的值。
[解决办法]
错了,默认的点击是按间隔滑动的,要想点击到哪儿滑动到哪儿,要重载mousePressEvent。
[解决办法]
如果是自己定义的由QSlider派生的类就重写mousePressEvent和mouseMoveEvent函数,注意这是基类QWidget中的函数。
要是想直接在QSlider上捕获事件,可以写一个继承自QObject的类,将QSlider的指针传进去,用eventFilter来捕获,注意在eventFilter中要做事件的判断和转换,判断是否为鼠标事件。