QT 自製控制項 滾動選擇器

2021-07-22 11:45:55 字數 2400 閱讀 1241

因為我需要有連續的數字以供選擇,所以只記了數字範圍。如有需求可以改為用任意線性容器保持資料

**:

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...