美文网首页
mac下QWebEngineView禁用手势放大和下拉效果

mac下QWebEngineView禁用手势放大和下拉效果

作者: 兴鹏 | 来源:发表于2021-04-07 18:17 被阅读0次

    QWebEngineView手势放大原因

    Qt具备手势相关的类和信号的,是支持mac原声手势的。

    Qt的事件处理

    Qt的类可以通过installEventFilter注册观察者,只要预先在观察者内,关注对应信号,直接返回true就可以做到将信号拦截于QWebEngineView处理之前,所以写一个类继承QObject,直接installEventFilter到QApplication里,将手势信号拦截在程序输入时,使得所有的界面都忽略mac原声手势

    代码如下

    #include <QObject>
    
    class Filter : public QObject
    {
        Q_OBJECT
    public:
        explicit Filter(QObject *parent = nullptr);
    
    protected:
        bool eventFilter(QObject *obj, QEvent *event);
    };
    
    #include "Filter.h"
    #include <QDebug>
    #include <QEvent>
    
    Filter::Filter(QObject *parent) : QObject(parent)
    {
    
    }
    
    bool Filter::eventFilter(QObject *obj, QEvent *event)
    {
        if (event->type() == QEvent::NativeGesture){
            qDebug() << Q_FUNC_INFO << obj << event->type();
            return true;
        }
    
        return false;
    }
    
    #include "MainWindow.h"
    
    #include <QApplication>
    #include "Filter.h"
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        Filter f;
        a.installEventFilter(&f);
        MainWindow w;
        w.show();
        return a.exec();
    }
    

    相关文章

      网友评论

          本文标题:mac下QWebEngineView禁用手势放大和下拉效果

          本文链接:https://www.haomeiwen.com/subject/uiiukltx.html