#include "CustomSlider.h"
CustomSlider::CustomSlider(QWidget * parent)
: QSlider(parent)
, m_parentWidget(parent)
, m_sliderDisplayLabel(NULL)
{
}
CustomSlider::~CustomSlider()
{
}
void CustomSlider::setBeginTimeLabel(QTime beginTime)
{
m_beginTime = beginTime;
}
void CustomSlider::setEndTimeLabel(QTime endTime)
{
m_endTime = endTime;
}
void CustomSlider::updateInterval()
{
m_interval = m_beginTime.secsTo(m_endTime)/(maximum()-minimum());
}
void CustomSlider::mousePressEvent(QMouseEvent *ev)
{
if (!m_sliderDisplayLabel)
{
updateInterval();
m_sliderDisplayLabel = new QLabel(this);
m_sliderDisplayLabel->setWindowFlags(Qt::Dialog);
m_sliderDisplayLabel->setWindowFlags(Qt::Dialog|Qt::FramelessWindowHint);
m_sliderDisplayLabel->setAttribute(Qt::WA_TranslucentBackground);
m_sliderDisplayLabel->setText(m_beginTime.addSecs(sliderPosition()*m_interval).toString("hh:mm:ss"));
m_sliderDisplayLabel->move(m_parentWidget->mapToGlobal(pos()).x()+sliderPosition()*(frameGeometry().width()-11)/(maximum()-minimum())-19,m_parentWidget->mapToGlobal(pos()).y()-12);
m_sliderDisplayLabel->setVisible(true);
}
return QSlider::mousePressEvent(ev);
}
void CustomSlider::mouseReleaseEvent(QMouseEvent *ev)
{
if (m_sliderDisplayLabel)
{
delete m_sliderDisplayLabel;
m_sliderDisplayLabel = NULL;
}
return QSlider::mouseReleaseEvent(ev);
}
void CustomSlider::mouseMoveEvent(QMouseEvent *ev)
{
if (m_sliderDisplayLabel)
{
m_sliderDisplayLabel->setText(m_beginTime.addSecs(sliderPosition()*m_interval).toString("hh:mm:ss"));
m_sliderDisplayLabel->move(m_parentWidget->mapToGlobal(pos()).x()+sliderPosition()*(frameGeometry().width()-11)/(maximum()-minimum())-19,m_parentWidget->mapToGlobal(pos()).y()-12);
m_sliderDisplayLabel->setVisible(true);
}
return QSlider::mouseMoveEvent(ev);
}
没有合适的资源?快使用搜索试试~ 我知道了~
QSlider滑块点击时在滑块上显示当前值 (二)
共7个文件
cpp:3个
h:2个
ui:1个
3星 · 超过75%的资源 需积分: 34 133 下载量 29 浏览量
2016-05-29
13:17:15
上传
评论
收藏 3KB RAR 举报
温馨提示
由于项目需要,需要Qt中QSlider滑块点击时在滑块上显示当前值。但是在网上找了好多资料都没有发现具体的实现。后经自己研究实现了。本着开源的精神,贡献出来源代码,也希望有更好思路的朋友给予指点。 受论坛中启发,又做了一个实现版本。
资源推荐
资源详情
资源评论
收起资源包目录
SliderDialog_2.rar (7个子文件)
SliderDialog_2
res
ui
MainDialog.ui 2KB
include
MainDialog.h 224B
CustomSlider.h 620B
SliderDialog.pro 474B
src
CustomSlider.cpp 2KB
main.cpp 208B
MainDialog.cpp 519B
共 7 条
- 1
资源评论
- qq_330557352018-11-27你这是在滑块上方显示,而不是在滑块上,太坑了余小文2019-09-13只是一个思路而已,伸手党又没跟你要积分,看来要把积分提上去了。又没请你进来下载
- fanhongjun20042017-07-19垃圾代码,需要修改
余小文
- 粉丝: 3
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功