首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

请教QT中的slider控件的鼠标点击事件~

2012-06-20 
请问QT中的slider控件的鼠标点击事件~!请问QT中,我在水平slider的上,用鼠标点击一个位置,是响应什么事件呢

请问QT中的slider控件的鼠标点击事件~!
请问QT中,我在水平slider的上,用鼠标点击一个位置,是响应什么事件呢。我想用鼠标点击一下,滑动点就移动到点击位置。谢谢。

[解决办法]
只对水平起作用,竖直的自己修改一下
需要继承自 QSlider

C/C++ code
#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中要做事件的判断和转换,判断是否为鼠标事件。

热点排行