Qt自定义带游标的slider,在滑块正上方显示当前值
来源:互联网 发布:国土防线2优化补丁 编辑:程序博客网 时间:2024/05/18 20:06
首先自定义QSlider的子类MyCustomSlider,如下所示。
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的评论
8 0
- Qt自定义带游标的slider,在滑块正上方显示当前值
- Android自定义可以在文字上方显示备注的View
- Qt Symbian: 如何让自己的程序显示在桌面上方
- popwindow 显示在某一控件的上方
- Android自定义PopupWindow显示在控件上方或者下方
- Android自定义PopupWindow显示在控件上方或者下方
- Android自定义PopupWindow显示在控件上方或者下方
- Android自定义SeekBar,带开始值结束值和Thumb上方滑动的Text
- 图片在文字上方一起显示的TextView或者Button
- 流程图:如何在连接线上方显示文字
- 控件显示在原有控件上方 c#
- 设置TabHost在手机屏幕上方、下方显示
- PopupWindow显示在某个控件上方
- PopupWindow显示在某个控件上方
- 输入框显示在输入法正上方
- PopupWindow显示在某个控件上方
- oracle 隐式 游标 显示 循环 动态 select 语句 游标 异常 处理 自定义 游标的概念
- 在Word中怎样能让上标、下标显示在 Word的页面上方的工具栏里
- R语言、R扩展包以及RStudio的安装
- 【android学习笔记】与MYSQL交互之JSONARRAY
- io流拷贝文本文件
- 7.20牛客网总结
- Python下的LibSVM的使用
- Qt自定义带游标的slider,在滑块正上方显示当前值
- MySQL长事务导致的Table Metadata Lock
- Android Action Bar 详解篇
- 程序猿的基本性格
- 4-11 求自定类型元素序列的中位数 (25分)
- GW - ToDoList
- Greenplum的工作负载及资源管理
- java se-作业2--随机数-2016.719
- wifi 驱动 进阶11