[問題] Qt的ScrollBar SpinBox滾輪偵測(已解決)
各位高手好,小弟在使用Qt的時候遇到了一個問題
就是如果視窗上有使用到ScrollBar或SpinBox
將滑鼠移到該物件上的時候移動滾輪都可以有反應,
也就是ScrollBar的捲軸上升下降、SpinBox的數字遞增、遞減
可是如果我將滑鼠移到這兩個物件的外面,那麼滾輪也就沒有作用了
http://ppt.cc/aMvi
就像圖中一樣,滑鼠移動到紅框之外的話,那麼滾輪的事件就會抓不到
從昨天開始查相關的解決方法都找不太到,
剛剛本來想說要改寫主視窗的QWheelEvent事件,
可是我在主視窗上面不管怎麼滾滾輪都沒有反應,
有點不知道該怎麼辦,所以想請問一下各位高手,希望可以指點一下
謝謝
我要做的功能就是像瀏覽器這種右邊通常都會提供ScrollBar,
當捲動頁面時滑鼠直接在網頁上滾就可以了,也不需要移動到Bar上面
============
對了,請問一下
請問有人知道http://ppt.cc/DYvl、http://ppt.cc/Mv0P
這圖片上selection area,有八個點點且可以自由拉取的那個功能專業術語叫什麼@@?
因為我需要這個功能,想查查看QT有沒有內建的
本來是有查到QRubberBand這功能,不過只能選取,並沒有八個點,
想說如果沒有內建的話我就搭配這個然後自己弄八個可移動的點點出來好了
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.139.2
※ 編輯: yoll522 來自: 114.25.139.2 (05/29 23:28)
推
05/30 00:10, , 1F
05/30 00:10, 1F
謝謝你,我照這個方向去查查看
另外我主題問到的滾輪問題我終於解決了
只要在主視窗安裝事件過濾器
this->installEventFilter(this);
接著去定義滾輪事件
bool MainWindow::eventFilter(QObject *object, QEvent *event) {
if(object == this)
if(event->type() == QEvent::Wheel) {
QWheelEvent *wheelEvent = (QWheelEvent *)(event);
if (wheelEvent->orientation() == Qt::Vertical) {
if(wheelEvent->delta()>0){ //向上滾
}
else{ //向下滾
}
return true;
}
}
return false;
}
這樣就可以了~~~
在這邊提供給需要的人
※ 編輯: yoll522 來自: 114.43.235.162 (05/30 21:02)
※ 編輯: yoll522 來自: 114.43.235.162 (05/30 22:01)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章