Qt自定义带游标的slider,在滑块正上方显示当前值
2016-07-20 23:25
615 查看
首先自定义QSlider的子类MyCustomSlider,如下所示。
mycustomslider.h
Qt中控件类的提升
最后的效果如下图所示,当鼠标点击滑块或者拖动滑块时,滑块正上方的游标实时显示当前值,松开鼠标时,游标隐藏。
源码链接:见http://blog.csdn.net/caoshangpa/article/details/51973902的评论
mycustomslider.h
#ifndef MYCUSTOMSLIDER_H #define MYCUSTOMSLIDER_H #include <QSlider> #include <QLabel> #include <QMouseEvent> class MyCustomSlider : public QSlider { public: MyCustomSlider(QWidget *parent=0); ~MyCustomSlider(); protected: virtual void mousePressEvent(QMouseEvent *event); virtual void mouseReleaseEvent(QMouseEvent *event); virtual void mouseMoveEvent(QMouseEvent *event); private: QLabel* m_displayLabel; }; #endif // MYCUSTOMSLIDER_Hmycustomslider.cpp
#include "mycustomslider.h" #include <QPalette> MyCustomSlider::MyCustomSlider(QWidget *parent):QSlider(parent) { m_displayLabel=new QLabel(this); m_displayLabel->setFixedSize(QSize(20,20)); //设置游标背景为白色 m_displayLabel->setAutoFillBackground(true); QPalette palette; palette.setColor(QPalette::Background, Qt::white); m_displayLabel->setPalette(palette); m_displayLabel->setAlignment(Qt::AlignCenter); m_displayLabel->setVisible(false); m_displayLabel->move(0,3); } MyCustomSlider::~MyCustomSlider() { } void MyCustomSlider::mousePressEvent(QMouseEvent *event) { if(!m_displayLabel->isVisible()) { m_displayLabel->setVisible(true); m_displayLabel->setText(QString::number(this->value())); } QSlider::mousePressEvent(event); } void MyCustomSlider::mouseReleaseEvent(QMouseEvent *event) { if(m_displayLabel->isVisible()) { m_displayLabel->setVisible(false); } QSlider::mouseReleaseEvent(event); } void MyCustomSlider::mouseMoveEvent(QMouseEvent *event) { m_displayLabel->setText(QString::number(this->value())); m_displayLabel->move((this->width()-m_displayLabel->width())*this->value()/(this->maximum()-this->minimum()),3); QSlider::mouseMoveEvent(event); }然后将界面QSlider控件提升为MyCustomSlider,提升方法如下所示。
Qt中控件类的提升
最后的效果如下图所示,当鼠标点击滑块或者拖动滑块时,滑块正上方的游标实时显示当前值,松开鼠标时,游标隐藏。
源码链接:见http://blog.csdn.net/caoshangpa/article/details/51973902的评论
相关文章推荐
- QT学习 第一章:基本对话框
- 使用Shiboken为C++和Qt库创建Python绑定
- Qt 5.6更新至RC版,最终版本近在咫尺
- Qt定时器和随机数详解
- Qt实现图片移动实例(图文教程)
- PHP面向对象教程之自定义类
- Qt for Android开发实例教程
- python自定义类并使用的方法
- QModelIndex/Role/Model介紹<二>
- Qt Model/View/Delegate浅谈 - QAbstractListModel
- Qt Model/View/Delegate浅谈 - roleNames()
- QT历程(一):与CryptoJs对应的AES加密
- 基于PyQt5的快速开发框架QFramer
- OSX下安装PyQt
- AS3 类的定义
- ok6410开发板移植DirectFB手记
- 【笔记】给Qt内嵌一个Chrome吧
- 【算法】最短路径之A*搜索
- qt入门必备
- 在 Qt4 中使用 C++11