• 4651阅读
  • 11回复

QSlider滑块点击时在滑块上显示当前值 [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 楼主  发表于: 2016-05-28
— 本帖被 XChinux 执行加亮操作(2016-05-29) —
关键词: QSlider界面显示

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




只看该作者 1楼 发表于: 2016-05-29
离线z_墨脱

只看该作者 2楼 发表于: 2016-06-08
我擦5分太多了
在线zjmmlab

只看该作者 3楼 发表于: 2016-06-30
先贴个图上来看看怎么样
离线stlcours

只看该作者 4楼 发表于: 2016-07-01
qt5.6报错:
C:\1_dev\SliderDialog\src\CustomSlider.cpp:1: error: CustomSlider.h: No such file or directory
#include "CustomSlider.h"
                          ^
在线liudianwu

只看该作者 5楼 发表于: 2016-11-07
我改进的这个应该还可以。

只看该作者 6楼 发表于: 2016-12-05
直接重写mouseMoveEvent不就得了??
离线zwk0704

只看该作者 7楼 发表于: 04-01
  不太行
离线zwk0704

只看该作者 8楼 发表于: 04-01
回 liudianwu 的帖子
liudianwu:我改进的这个应该还可以。
[图片] (2016-11-07 12:52) 

大各,你别只是方个图啊
离线jinzhu1911

只看该作者 9楼 发表于: 04-14
不错,学习一下
离线gintonic

只看该作者 10楼 发表于: 05-12
回 瓦解的精彩 的帖子
瓦解的精彩:直接重写mouseMoveEvent不就得了?? (2016-12-05 19:01) 

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

只看该作者 11楼 发表于: 06-09
这都要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 重写此函数,最后的信号是我自己定义的,可用可不用
1条评分好评度+1
newbe 好评度 +1 - 09-22
快速回复
限100 字节
 
上一个 下一个