终于有时间写点东西了~~自从毕业到现在,才做了不到两个月的工作辞掉了,为了自己的兴趣,在这里鼓励有强烈追求的人勇敢的做自己想做的事,做自己喜欢的工作!
来到一个新公司,老大要求用qt还有opengl做一个yuv播放器,完全没接触过这些,不过经过自己的努力在半个多月还是弄出来了~问题众多,下面就Qt的QSlider遇到的问题来讲讲希望对新手有点帮助!
在Qt中Qslider的单击并不是直接移动到点击的位置,而是每点一次移动一步。这在给播放器的体验效果很差,所以很是有必要自己来实现。但是必须注意到的一个问题是QSlider的拖动,如果处理不好点击和拖动会冲突造成功能失效。处理这个问题可以从QSlider继承过来,重新实现鼠标点击事件,可以重新实现鼠标按下或者释放这个事件来完成这个效果。建议重新实现鼠标左键按下的事件。废话说多了,上代码把:
class SliderClick : public QSlider
{
public:
SliderClick(QWidget *parent = 0) : QSlider(parent)
{
}
protected:
void mousePressEvent(QMouseEvent *ev)
{
//注意应先调用父类的鼠标点击处理事件,这样可以不影响拖动的情况
QSlider::mousePressEvent(ev);
//获取鼠标的位置,这里并不能直接从ev中取值(因为如果是拖动的话,鼠标开始点击的位置没有意义了)
double pos = ev->pos().x() / (double)width();
setValue(pos * (maximum() - minimum(