资源简介

自己制作的双滑块滑动器,这只是一个模本,较完整版删减了很多功能 中间的空白处可以自己加载调色板进行填充 已经写了一组返回值,一组信号 点击滑块中间位置,可以同时拖动两个滑块

资源截图

代码片段和文件信息

#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个文件信息

评论

共有 条评论