Qt滑鼠拖動ScrollArea代替滑鼠滾輪操作

2021-08-09 21:44:34 字數 1127 閱讀 2123

因為此前有個專案做的軟體要在平板上執行,螢幕不大,滾動條太細,如果加粗滾動條影響美觀,滾動條太細又點不到,使用者體驗較差。所以做了這個滑鼠拖動即可代替滑鼠滾輪的功能。

dialogex.h

#ifndef dialogex_h

#define dialogex_h

#include #include #include #include #include class dialogex : public qdialog

;#endif // dialogex_h

dialogex.cpp

#include "dialogex.h"

dialogex::dialogex(qwidget *parent)

: qdialog(parent)

, m_pscrollarea(null)

, m_pscrollwidget(null)

, m_ptiplabel(null)

, m_bmousepressed(false)

dialogex::~dialogex()

void dialogex::init()

void dialogex::mousemoveevent(qmouseevent *e)

qpoint currentpt = e->pos();

int dist = m_pressposition.y() - currentpt.y();

m_pscrollarea->verticalscrollbar()->setvalue(m_pscrollarea->verticalscrollbar()->value() + dist);

m_pressposition = currentpt;

}void dialogex::mousepressevent(qmouseevent *e)

void dialogex::mousereleaseevent(qmouseevent *e)

main.cpp

#include "dialogex.h"

例子中只做了豎直方向的拖動,水平方向同理

SL滑鼠拖動

實現滑鼠down up 和move 事件可以在布局面板中使用滑鼠拖動或移動巢狀在border控制項中的影象或物件。xaml canvas x name layoutroot background white border x name border1 canvas.top 100 canvas.le...

javascript 滑鼠拖動

因為滑鼠沒有拖動事件 按下滑鼠並移動 只有按下,抬起,移動。記得在之前的乙個 拖動層 的隨筆中,我實現拖動,是用的乙個布林變數,判斷是否可以拖動某元素。這兩天看了一些東西,發現不需要設這個布林變數 實現過程 按下滑鼠的時候,給文件物件 當然也可以是別的dom物件 的移動事件繫結乙個處理函式,同時也給...

JavaScript滑鼠拖動

下面先看乙個有bug的版本,就是滑鼠移動太快後方塊會跟不上滑鼠的移動,然後滑鼠就離開了方塊區域,而事件都是繫結在方塊 div 上的,所以當滑鼠離開方塊後方塊就停了下來,當滑鼠 無論是否鬆開滑鼠左鍵 回到方塊區域方塊又會跟著滑鼠移動。出現這種問題的原因是 系統監聽滑鼠移動的頻次小於滑鼠移動的頻次。解決...