Я пытался принимать события касания в Qt6 вот так, в main.cpp:
QApplication::setAttribute(Qt::ApplicationAttribute::WA_AcceptTouchEvents); ошибка: в Qt::ApplicationAttribute нет элемента с именем «WA_AcceptTouchEvents»
IntelliSense показывает, что Qt::ApplicationAttribute имеет WA_AcceptTouchEvents. Но я думаю, что это ошибка Qt Creator, поскольку в Qt::ApplicationAttribute:
нет WA_AcceptTouchEvents.

и я попробовал запустить этот код:
QApplication::setAttribute(Qt::WA_AcceptTouchEvents); ошибка: невозможно инициализировать параметр типа «Qt::ApplicationAttribute» с помощью rvalue типа «Qt::WidgetAttribute»
Я пытался принять это в конструкторе окна, но QOpenGLWindow не имеет метода setAttribute:
ошибка: использование необъявленного идентификатора setAttribute; вы имели в виду «QInputMethodEvent::Attribute»?
OpenGLWindow::OpenGLWindow() { setTitle("OpenGL ES 2.0, Qt6, C++"); изменить размер (350, 350); setAttribute(Qt::WA_AcceptTouchEvents); } Мой профиль:
QT += виджеты OpenGL основного графического интерфейса КОНФИГ += С++17 # Вы можете сделать так, чтобы ваш код не компилировался, если он использует устаревшие API. # Для этого раскомментируйте следующую строку. # отключает все API, устаревшие до Qt 6.0.0 # DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 ИСТОЧНИКИ += \ основной.cpp \ opengl_window.cpp ЗАГОЛОВКИ += \ opengl_window.h # Правила по умолчанию для развертывания. qnx: target.path = /tmp/$${TARGET}/bin еще: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): УСТАНАВЛИВАЕТ += цель Добавлено
musicamante разместил следующую ссылку и цитату в комментариях ниже:
документация (Обработка событий): «В отличие от виджетов, QWindows всегда получает события касания, нет необходимости соглашаться. При работе напрямую с QWindow достаточно переопределить QWindow::touchEvent()» Но когда я запускаю следующий код на реальном устройстве, прикасаюсь к экрану (он печатает counter = 0), удерживая палец на экране, пытаюсь коснуться другим пальцем и не напечатайте следующую строку, например counter = 1. Похоже, мультитач отключен.
void OpenGLWindow::touchEvent(QTouchEvent *event) { переключатель (событие->тип()) { случай QEvent::TouchBegin: qDebug()