资源简介
自己制作的双滑块滑动器,这只是一个模本,较完整版删减了很多功能
中间的空白处可以自己加载调色板进行填充
已经写了一组返回值,一组信号
点击滑块中间位置,可以同时拖动两个滑块
代码片段和文件信息
#include “colorslider.h“
ColorSlider::ColorSlider(QWidget *parent)
: QWidget(parent)
{
a_x_=0.a_y_=0.1;
b_x_=0.b_y_=0.5;
c_y_=0p_c_a_=0p_c_b_=0;
/*b_x_=135b_y_=5;*/
slider_a_seleced_=false;
slider_b_seleced_=false;
slider_a_b_seleced_=false;
}
ColorSlider::~ColorSlider()
{
}
void ColorSlider::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
/*painter.setViewport(0height()/2width()30);
painter.setWindow(-50-50100100);*/
draw(&painter);
}
void ColorSlider::draw(QPainter* painter )
{
painter->setBrush(Qt::NoBrush);
painter->setPen(QPen(Qt::black1Qt::SolidLineQt::RoundCap));
QRectF rectangle1(0.2*width() 0 width()*0.6 height()-1);
painter->drawRect(rectangle1);
if (slider_a_seleced_)
{
painter->setPen(QPen(Qt::blue1Qt::SolidLineQt::RoundCap));
}
painter->drawRoundRect ( a_x_*width()+1 a_y_*height() width()-2 5 25 25 );
painter->setPen(QPen(Qt::black1Qt::SolidLineQt::RoundCap));
if (slider_b_seleced_)
{
painter->setPen(QPen(Qt::blue1Qt::SolidLineQt::RoundCap));
}
painter->drawRoundRect ( b_x_*width()+1 b_y_*height() width()-2 5 25 25 );
}
void ColorSlider::mousePressEvent( QMouseEvent *event )
{
QPointF point = mapFromGlobal(QCursor::pos());
int a_hight=a_y_*height();
int b_hight=b_y_*height();
if (point.y()>=a_hight&& point.y()<=(a_hight+5))
{
slider_a_seleced_ = true;
}else if (point.y()>=b_hight&&point.y()<=b_hight+5)
{
slider_b_seleced_ = true;
}else if (point.y()>(a_hight+5)&&point.y() {
slider_a_b_seleced_ = true;
c_y_ = point.y();
p_c_a_ = c_y_ - a_hight;
p_c_b_ = c_y_ - b_hight;
}
update();
}
void ColorSlider::mouseMoveEvent( QMouseEvent *event )
{
QPointF point = event->pos();
if (slider_a_seleced_)
{
if (point.y()>=0 && point.y()<=b_y_*height()-5)
{
a_y_ = point.y()/height();
emit SignalActionAPos(a_y_);
}
}else if (slider_b_seleced_)
{
if (point.y()=a_y_*height()+5)
{
b_y_ = point.y()/height();
emit SignalActionBPos(b_y_);
}
}else if (slider_a_b_seleced_ && point.y()-p_c_a_>=0 && point.y()-p_c_b_ {
a_y_ = (point.y()-p_c_a_)/height();
b_y_ = (point.y()-p_c_b_)/height();
emit SignalActionAPos(a_y_);
emit SignalActionBPos(b_y_);
}
update();
}
void ColorSlider::mouseReleaseEvent( QMouseEvent *event )
{
slider_a_seleced_=false;
slider_b_seleced_=false;
update();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8892 2013-09-11 10:34 slider\Debug\BuildLog.htm
文件 76736 2013-09-11 10:34 slider\Debug\colorslider.obj
文件 67096 2013-09-11 10:34 slider\Debug\main.obj
文件 56459 2013-09-11 10:34 slider\Debug\moc_colorslider.obj
文件 69830 2013-09-11 10:34 slider\Debug\moc_slider.obj
文件 65 2013-09-11 10:34 slider\Debug\mt.dep
文件 13332 2013-09-11 10:22 slider\Debug\qrc_slider.obj
文件 67584 2013-09-11 10:34 slider\Debug\slider.exe
文件 621 2013-09-11 10:34 slider\Debug\slider.exe.intermediate.manifest
文件 860652 2013-09-11 10:34 slider\Debug\slider.ilk
文件 111079 2013-09-11 10:34 slider\Debug\slider.obj
文件 1379328 2013-09-11 10:34 slider\Debug\slider.pdb
文件 683008 2013-09-11 10:34 slider\Debug\vc90.idb
文件 897024 2013-09-11 10:34 slider\Debug\vc90.pdb
文件 2533 2013-09-11 10:33 slider\slider\colorslider.cpp
文件 879 2013-09-11 10:33 slider\slider\colorslider.h
文件 3512 2013-09-11 10:33 slider\slider\GeneratedFiles\Debug\moc_colorslider.cpp
文件 2379 2013-09-11 10:30 slider\slider\GeneratedFiles\Debug\moc_slider.cpp
文件 711 2013-09-11 10:22 slider\slider\GeneratedFiles\qrc_slider.cpp
文件 2831 2013-09-11 10:27 slider\slider\GeneratedFiles\ui_slider.h
文件 167 2013-09-11 10:24 slider\slider\main.cpp
文件 280 2013-09-11 10:27 slider\slider\slider.cpp
文件 337 2013-09-11 10:30 slider\slider\slider.h
文件 66 2013-09-11 10:21 slider\slider\slider.qrc
文件 1214 2013-09-11 10:27 slider\slider\slider.ui
文件 12351 2013-09-11 10:22 slider\slider\slider.vcproj
文件 1470 2013-09-11 10:34 slider\slider\slider.vcproj.h20405-PC.h20405.user
文件 52224 2013-09-11 10:34 slider\slider.ncb
文件 884 2013-09-11 10:21 slider\slider.sln
..A..H. 11776 2013-09-11 10:34 slider\slider.suo
............此处省略10个文件信息
- 上一篇:Synplify Pro8.1 & Crack.rar
- 下一篇:FPGA 数字时钟
相关资源
- QT 源码 圆形时钟
- 基于QT+Linux的网络聊天室
- QGraphicsView Draw
- QT-玛丽奥医生的源代码
- QT画坐标系折线图
- MainWindow和Dialog通过信号和槽通信
- 在QGraphicsScene上画矩形
- Qt下使用GLSL的-变色的小球
- Qt 推箱子游戏及最短路径 源码
- Qt简易浏览器(类似微信)无边框阴影
- Qt状态灯红绿灯实现
- QT:学生信息管理系统
- ModbusTCPMQTT
- qt UDP聊天
- QT自定义 换肤界面
- qt天气预报
- qt聊天室程序
- Qt绘制sin函数静态波形
- Qt异或实现文件加解密.rar
- EncryptQtDemo.rar
- QT等待对话框
- QT5串口上位机源代码
- qml 用item自定义dialog 对话框
- PyQt入门指南
- 汽车仪表盘
- qt做的小程序-鼠标事件
-
Qt Remote ob
ject(QtRO)进程间通信De - 基于QT扫雷游戏开发
- 解决QTextEdit右键菜单为英文的问题
- Qt QRCode生成二维码,完整代码可运行
评论
共有 条评论