QWebEngineПросмотреть, как отключить масштабирование - PullRequest
0 голосов
/ 26 сентября 2019

Я запускаю приложение Qt 5.9.4 с QWebView на сенсорном устройстве linux, отображающем веб-страницы HTML.

Когда пользователи сжимают пальцы на экране, они увеличивают масштаб страницы.Я хочу отключить это поведение, потому что все веб-страницы должны быть на 100% полноэкранными.

Я мог бы временно отключить его на веб-страницах (так как я владею их кодом), добавив user-scalable=no в область просмотра, но это неработать в долгосрочной перспективе, потому что не каждая веб-страница будет иметь это.

Я пытался использовать eventFilter на разных элементах моего приложения, но не смог получить ни одно событие Gesture или даже Mouse для захвата.

Вот как я создаю свое веб-представление (в QDialog):

void Dialog::createWebView() {
  view = new QWebEngineView(this);
  profile = new QWebEngineProfile();
  page = new QWeEnginePage(profile);
  view->setPage(page);
  view->setUrl(QUrl(path));
}

Это мой класс eventFilter:

EvFilter::EvFilter(QObject *parent) : QObject(parent)
{

}

bool EvFilter::eventFilter(QObject *obj, QEvent *event)
{

    qDebug() << event->type() << "\n";
    return QObject::eventFilter(obj, event);
}

Я пытался сделать

EvFilter* evf = new EvFilter();
view->installEventFilter(evf);

А также на любой другой элемент (профиль, страница, диалог), но не может получить какие-либо события, соответствующие мыши или жесту.Что я делаю неправильно?Как я могу предотвратить такое поведение во всем веб-просмотре?

После добавления прослушивателя событий в объект QApplication я могу обнаружить события TouchBegin, TouchUpdate, TouchCancel и TouchEnd, но больше ничего (без события Gesture).Я не знаю, как я могу определить, является ли касание жестом зума.

...