我不確定,如果你想滾輪只曾經被用於縮放圖像,或者如果你想滾輪來控制,當圖像比滾動區域視小放大,然後使用滾動當圖像大於滾動區視口時滾輪進行滾動。在任何一種情況下,您都應該能夠自定義如何使用以下方式處理車輪:
由於我沒有真正嘗試過這個,我不確定它是否會起作用。希望如果您安裝了事件過濾器並將事件設置爲忽略,該事件仍將傳播回您的圖像小部件。這將允許您保留當前在圖像小部件中的鼠標處理完好無損。
bool YourImageWidget::eventFilter(QObject *obj, QEvent *event)
{
if((obj == scrollAreaPointer) && (event->type() == QEvent::Wheel))
{
if(!scrollAreaShouldHandleWheel)
{
event->ignore();
}
}
return false; // always pass the event back to the scroll area
}
的scrollAreaShouldHandleWheel
標誌,你會根據您是否希望滾動區域來處理滾輪事件設定從圖像構件一個布爾值。
在代碼中的某處,您將安裝圖像小部件作爲scrollarea的事件過濾器。
scrollArea->installEventFilter(imageWidget);
如果這不起作用,你可以隨時使用這個過濾器,確保你的widget獲取事件,並直接處理它,然後返回true,這樣滾動區域將無法接收事件。
有兩個問題。你的意思是QScrollArea而不是QScrollBar?你是否想要滾動條響應滾輪? – 2010-09-16 05:14:16
對不起,是的,它的QScrollArea。是的,實際上我想使用滾動條來移動可見區域。 – 2010-09-16 05:16:17