Qt/C++ QSlider解决点击不能到该位置问题
2016-05-26 15:33
337 查看
方法一:可以继承重写一个QSlider方法二:1.instaneventfiliter(this);slider安装一个事件过滤器 2.在eventfilter(QObject *,QEvent*)中拦截它,很简单吧例子:
slider=new QSlider(this);
slider->installEventFilter(this);
bool trayIconMenu::eventFilter(QObject *obj, QEvent *event)
{
if(obj==slider)
{
if (event->type()==QEvent::MouseButtonPress) //判断类型
{
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
if (mouseEvent->button() == Qt::LeftButton) //判断左键
{
int dur = slider->maximum() - slider->minimum();
int pos = slider->minimum() + dur * ((double)mouseEvent->x() / slider->width());
if(pos != slider->sliderPosition())
{
slider->setValue(pos);
}
}
}
}
return QObject::eventFilter(obj,event);
}
okay!即可以实现slider点哪里就到哪里powered by:小乌龟在大乌龟背上
相关文章推荐
- c++二叉树
- iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements
- iOS开发之SQLite-C语言接口规范(二) —— Prepared Your SQL Statements
- c++中构造函数初始化的方法以及主要区别
- iOS开发之SQLite-C语言接口规范(一)——Ready And Open Your SQLite
- C++标准模板库
- 如何打印出方法名和行号,并有条件地禁止的NSLog?
- C++实践参考:数组类模板
- C和C++编译器的函数名修饰规则
- C++实践参考:两个成员的类模板
- C++实践参考:排序函数模板
- C++面试笔记--宏定义
- C++ extern static
- 当析构函数遇到多线程 ── C++中线程安全的对象回调
- C++ string 用法详解
- acm c++ 练习中出现的错误类型
- C++的const类成员函数
- C++关于cout的格式化输出
- mysql和VS2010 C++链接过程中出现的问题
- C++ inline内连函数