Я запускаю приложение 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).Я не знаю, как я могу определить, является ли касание жестом зума.