Я разрабатываю сенсорное приложение для Windows 7 с Qt / QML. Устройство конечного пользователя имеет собственное сенсорное поведение Windows 7, то есть: при прикосновении к экрану точка появляется на точке последнего касания, а при завершении физического касания Windows помещает эту точку на точку, которой коснулись сейчас, и запускается в событии по щелчку.
По сравнению с поведением, которое известно из стандартного использования мыши в Windows, это приводит к другому поведению, как только дело доходит, например, до нажатие какой-либо кнопки: пользователь мыши будет ожидать, что кнопка изменит цвет на цвет нажатого вниз, когда кнопка мыши опущена, в то время как цвет снова изменится на цвет по умолчанию, когда кнопка мыши поднимется.
В моем приложении я хочу иметь настраиваемый способ обратной связи касания: то, к чему в данный момент прикасаются, следует отмечать с помощью измененных цветов кнопок, имитируя «мышь опускается вниз», когда начинается фактическое физическое касание, и имитируя «мышь поднимается вверх». когда заканчивается физическое прикосновение.
Мое приложение будет работать в полноэкранном режиме, поэтому существует реальная возможность изменить поведение системы при запуске приложения и вернуть его по умолчанию в конце приложения.
Такое поведение будет фактически таким же, как стандартное поведение, например, на все устройства Android, которые я знаю.
Я просмотрел все элементы MouseArea и MultiPointTouchArea, пытаясь найти способ просто сделать поведение реакции щелчка отличным от стандартного. Однако я даже не нашел способа запечатлеть начало фактического прикосновения ... Все, что я хочу, чтобы произошло в начале прикосновения, на самом деле происходит, когда прикосновение заканчивается.
Изменить: не имеет значения, использую ли я кнопку QML или область мыши плюс свойство MouseArea.pressed: ничего не будет «нажато» до того, как палец покинет касание и даже будет вызван onClicked ().
Возможно, связано: Adobe AIR: сенсорный экран не запускается событие нажатия мыши правильно - но я не нашел способа получить доступ к функциям, подобным Multitouch.inputMode (которые упомянуты в первом ответе), из собственного приложения Qt.
Как я могу добиться описанного поведения для моего приложения?
Button
s с пользовательскимиStyle
s? Таким образом вы можете получить желаемые цвета / эффекты. Что касаетсяMouseArea
, у васpressed
иrelease
, недостаточно ли такой детализации в управлении событиями для ваших нужд? Или это основная проблема, о которой вы говорите в первом предложении? - person BaCaRoZzo   schedule 12.12.2014onPressed
обработчик событий иonRelease
обработчик событий, которые вас интересуют. Обработчик событийonclick
определенно выходит за рамки здесь и не должен определяться / использоваться в вашемMouseArea
коде. Тем не менее, вопрос в том, решает ли комбинация двух обработчиков и стилей вашу проблему? Возможно нет? - person BaCaRoZzo   schedule 15.12.2014MouseArea
над приложением и использование егоonRelease
для генерации событий для нижележащего графического интерфейса может быть (как я знаю) решением. Принятие события и его отправка довольно просты. - person BaCaRoZzo   schedule 16.12.2014MouseArea
, вы можете поиграть с другими обработчиками внизу, как хотите. Но, возможно, я все еще что-то упускаю, извините, если я не помог. - person BaCaRoZzo   schedule 17.12.2014