因為我需要有連續的數字以供選擇,所以只記了數字範圍。如有需求可以改為用任意線性容器保持資料
**:
self-contained.h
#ifndef selfcontained_h
#define selfcontained_h
#include #include #include #include #endif // selfcontained_h
rollingbox.h
#ifndef rollingbox_h
#define rollingbox_h
#include "self-contained.h"
class rollingbox : public qwidget//gig_c_god
;#endif // rollingbox_h
rollingbox.cpp
#include "rollingbox.h"
rollingbox::rollingbox(qwidget *parent) :
qwidget(parent),m_minrange(0),m_maxrange(100),
m_currentvalue(50),isdragging(0),m_deviation(0),m_numsize(6)
void rollingbox::setrange(int min,int max)
repaint();
}int rollingbox::readvalue()
void rollingbox::mousepressevent(qmouseevent *e)
void rollingbox::mousemoveevent(qmouseevent *e)
}void rollingbox::mousereleaseevent(qmouseevent *)
}void rollingbox::paintevent(qpaintevent *)
if(m_deviation <= -width/4 && m_currentvalue < m_maxrange)
//中間數字
paintnum(painter,m_currentvalue,m_deviation);
//兩側數字1
if(m_currentvalue != m_minrange)
paintnum(painter,m_currentvalue-1,m_deviation-width/4);
if(m_currentvalue != m_maxrange)
paintnum(painter,m_currentvalue+1,m_deviation+width/4);
//兩側數字2,超出則不顯示
if(m_deviation >= 0 && m_currentvalue-2 >= m_minrange)
paintnum(painter,m_currentvalue-2,m_deviation-width/2);
if(m_deviation <= 0 && m_currentvalue+2 <= m_maxrange)
paintnum(painter,m_currentvalue+2,m_deviation+width/2);
//邊框
painter.setpen(qpen(qcolor(0,0,0,120),2));
painter.drawline(width/8*3,0,width/8*3,height);
painter.drawline(width/8*5,0,width/8*5,height);
}void rollingbox::paintnum(qpainter &painter,int num,int deviation)
void rollingbox::homing()
else if(m_deviation > -width()/8)
else if(m_deviation < -width()/8)
emit currentvaluechanged(m_currentvalue);
homingani->start();
}int rollingbox::readdeviation()
void rollingbox::setdeviation(int n)
QT滾動數字 滾動選擇器 滑動選擇器
最近在做個小軟體,用到定時提醒功能,定時選擇時間的時候我想到了錘子手機的鬧鐘設定介面,當然這種數字滾動選擇器也是很常見啦,類似下面的效果 參考了 這個大佬的的demo是橫向的,單個數字,數字左右移動切換 還有 這個大佬的效果也是一條數字框,上下切換 借鑑了他們兩個的 我做了個時鐘選擇器,效果是這樣的...
CSS HTML滾動效果,滾動選擇器
之前看到乙個案例是乙個滾動的效果,是用css和html寫的乙個滾動選擇器,主要是用了css裡面的scroll snap type和scroll snap align他們有不同的引數可以實現不同的效果,小白不太熟悉,需要的話可以去看文件,下面是效果圖 這個是實現的方法,但是那個案例並沒有說如何獲取當前...
Qt自定義控制項 滑動選擇器
滑動選擇器為飛機儀錶盤的一部分 借鑑 在此基礎上模仿 painter繪製比較簡單不多說 重點 通過qpropertyanimation動畫類,屬性繫結,實現數字矯正到中心 在此基礎上增加滑鼠滾輪效果,void wheelevent qwheelevent event else m currentva...