什麼是最簡單的方式讓QWebView
在鼠標滾輪事件上水平滾動而不是垂直滾動。我認爲以下的替代品,但也許有一些更簡單的方法:讓`QWebView`在鼠標滾輪上水平滾動
- 子QWebView並重新實現
QWebView::wheelEvent()
- 負載顯示的網頁,其中不改造
什麼是最簡單的方式讓QWebView
在鼠標滾輪事件上水平滾動而不是垂直滾動。我認爲以下的替代品,但也許有一些更簡單的方法:讓`QWebView`在鼠標滾輪上水平滾動
QWebView::wheelEvent()
我高估了上一些javascript選項1的複雜性。在我的問題中。我已經實現它,像這樣(省略構造函數):
class HScrollWebView : public QWebView
{
Q_OBJECT
public:
explicit HScrollWebView(QWidget *parent = 0);
protected:
virtual void wheelEvent(QWheelEvent *ev);
};
void HScrollWebView::wheelEvent(QWheelEvent *ev){
page()->currentFrame()->scroll(ev->delta(), 0);
}
另一種方法是發送定向爲水平的僞造的車輪事件。
void HScrollWebView::wheelEvent(QWheelEvent *ev)
{
QWheelEvent weHorizontal(ev->pos(), ev->delta(), ev->buttons(), ev->modifiers(),
Qt::Horizontal);
QWebView::wheelEvent(&weHorizontal);
}
此版本也適用於複雜的網頁。例如。有滾動款的網頁不會受到調用
page()->currentFrame()->scroll(ev->delta(), 0);
滾動正確的區域,如果設置currentFrame()在錯誤的幀點(例如主機)。