QSlider解决点击不能到该位置问题

方法一:可以继承重写一个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点哪里就到哪里

http://blog.csdn.net/what951006/article/details/51507801

posted @   findumars  Views(3101)  Comments(0Edit  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2015-06-12 webkit中DOM 事件有多少
2015-06-12 在TMemo上画一条线(超级简单,举一反三)
点击右上角即可分享
微信分享提示