Как принять события касания в Qt6? [закрыто]C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Как принять события касания в Qt6? [закрыто]

Сообщение Гость »


Я пытался принимать события касания в 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()
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как принять события касания в Qt6?
    Anonymous » » в форуме Android
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Как принять события касания в Qt6?
    Anonymous » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Как принять события касания в Qt6?
    Гость » » в форуме Android
    0 Ответы
    26 Просмотры
    Последнее сообщение Гость
  • Как принять события касания в Qt6?
    Anonymous » » в форуме Android
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Как принять события касания в Qt6?
    Anonymous » » в форуме C++
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»