查看完整版本: [-- QSlider滑块点击时在滑块上显示当前值 --]

QTCN开发网 -> Qt代码秀 -> QSlider滑块点击时在滑块上显示当前值 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

追逐_追梦 2016-05-28 12:23

QSlider滑块点击时在滑块上显示当前值


由于项目需要,需要Qt中QSlider滑块点击时在滑块上显示当前值。
但是在网上找了好多资料都没有发现具体的实现。
后经自己研究实现了。
本着开源的精神,贡献出来源代码,也希望有更好思路的朋友给予指点。
源代码地址:QSlider滑块点击时在滑块上显示当前值
http://download.csdn.net/detail/zhuizhu761303826/9533537
[attachment=15251]




追逐_追梦 2016-05-29 13:16

又做了一个实现版本
QSlider滑块点击时在滑块上显示当前值 (二)



z_墨脱 2016-06-08 16:31
我擦5分太多了

zjmmlab 2016-06-30 08:36
先贴个图上来看看怎么样

stlcours 2016-07-01 23:36
qt5.6报错:
C:\1_dev\SliderDialog\src\CustomSlider.cpp:1: error: CustomSlider.h: No such file or directory
#include "CustomSlider.h"
                          ^

liudianwu 2016-11-07 12:52
我改进的这个应该还可以。
[attachment=15953]

瓦解的精彩 2016-12-05 19:01
直接重写mouseMoveEvent不就得了??

zwk0704 2017-04-01 09:55
  不太行

zwk0704 2017-04-01 09:55
liudianwu:我改进的这个应该还可以。
[图片] (2016-11-07 12:52) 

大各,你别只是方个图啊

jinzhu1911 2017-04-14 22:03
不错,学习一下

gintonic 2017-05-12 20:00
瓦解的精彩:直接重写mouseMoveEvent不就得了?? (2016-12-05 19:01) 

请问重载鼠标点击事件怎么写,我参考了网上的代码,但是一直实现不了

飞鸿剑心 2017-06-09 10:59
这都要5分,我把我的实现发上来吧,其实就是前面说的实现重写mouseMoveEvent
void MySlider::mousePressEvent(QMouseEvent *ev)
{
    //注意应先调用父类的鼠标点击处理事件,这样可以不影响拖动的情况
    QSlider::mousePressEvent(ev);
    //获取鼠标的位置,这里并不能直接从ev中取值(因为如果是拖动的话,鼠标开始点击的位置没有意义了)
    if(this->orientation() == Qt::Horizontal)
    {
        double pos = ev->pos().x() / (double)width();
        setValue(pos * (maximum() - minimum()) + minimum());
    //    qDebug() << "pos * (maximum() - minimum()) + minimum()" << pos * (maximum() - minimum()) + minimum();
    }else
    {
        double pos = ev->pos().y() / (double)height();
        setValue((1-pos) * (maximum() - minimum()) + minimum());
    }

    emit  sliderValueChange();
}

说明:继承QSlider 重写此函数,最后的信号是我自己定义的,可用可不用

big_mouse 2020-04-15 09:41


查看完整版本: [-- QSlider滑块点击时在滑块上显示当前值 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled