Russian Qt Forum
Июня 09, 2025, 22:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с залипанием кнопок у приложения при использовании сенсорного экрана  (Прочитано 11254 раз)
kerf
Гость
« : Марта 05, 2010, 12:23 »


При использовании qt версии 4.5.1 и сенсорного экрана (OS Debian linux, драйвер penmount PM9000) в приложении "залипают" кнопки, т.е. при нажатии на сенсорный экран кнопка вдавливается, а после отпускания так и остается вдавленной.
Данное поведение наблюдается не всегда.
При компиляции того же приложения в версии qt 4.6. такой проблемы не наблюдается.
В чем м.б. причина такого поведения?
Проблема также воспроизводится для калькулятора из примеров к qt.
Под windows проблема не воспроизводится.
Записан
NicK
Гость
« Ответ #1 : Марта 05, 2010, 16:53 »

При компиляции того же приложения в версии qt 4.6. такой проблемы не наблюдается.

Вы сами,практически, ответили на свой вопрос. Обновить версию Qt не пробовали?
Записан
kerf
Гость
« Ответ #2 : Марта 05, 2010, 17:05 »

Дело в том, что в проекте используется большое количество других компонент, и переход на другую версию может повлиять на стабильность системы.
Хотелось бы услышать, сталкивался кто-либо с такой проблемой и если да, то можно ли ее полечить не переходя на новую версию qt.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Марта 05, 2010, 18:11 »

kerf, как вариант поискать в списке изменений версии 4.6.0, нет ли упоминания на этот счёт
Записан

Юра.
kerf
Гость
« Ответ #4 : Марта 08, 2010, 23:59 »

kerf, как вариант поискать в списке изменений версии 4.6.0, нет ли упоминания на этот счёт

Смотрел, не нашел ничего подобного. Перерыл форумы, аналогичной проблемы не нашел, и это настораживает..
Пробовал версии библиотек 4.5.1 и 4.5.2 проблема сохраняется, в 4.6.0 и 4.6.2 ее нет
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #5 : Марта 09, 2010, 10:18 »

видимо в 6ке этот баг поправили
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #6 : Марта 09, 2010, 14:59 »

Цитировать
Перерыл форумы, аналогичной проблемы не нашел, и это настораживает..
обычно настораживает когда в новой версии есть глюки которых не было в старой. В баг трекере искали? Можно запостить туда issue для версии 4.5 тролли проверят проставят статус (пофиксино или нет) и тогда уже можно будет спасть спокойно. По идее выяснится знали ли они про баг или он случайно исправился и может вылезти вновь.
Записан
kerf
Гость
« Ответ #7 : Марта 09, 2010, 16:23 »

Цитировать
Перерыл форумы, аналогичной проблемы не нашел, и это настораживает..
обычно настораживает когда в новой версии есть глюки которых не было в старой. В баг трекере искали? Можно запостить туда issue для версии 4.5 тролли проверят проставят статус (пофиксино или нет) и тогда уже можно будет спасть спокойно. По идее выяснится знали ли они про баг или он случайно исправился и может вылезти вновь.

Спасибо за идею. В баг трекере не нашел. Написал задачу, посмотрим..)
Записан
kerf
Гость
« Ответ #8 : Марта 09, 2010, 16:56 »

написал, уже ответили.
дословно: "We do unfortunately not have resources to look through the logs and find which 4.6 change fixed the issue."
т.е. возможно такая проблема имеет место в 4.5.
Придется переходить на 4.6 похоже...
Всем спасибо!
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #9 : Марта 09, 2010, 18:43 »

ага только дословно "мы не имеем возможности проверить все логи и найти после чего эта ошибка была исправлена", как следствие ее может никто и не правил, а ушла после какого-нибудь рефакторинга или может стала реже проявляться или при других условиях...
Записан
ax
Чайник
*
Offline Offline

Сообщений: 60


Просмотр профиля
« Ответ #10 : Марта 09, 2010, 18:48 »


При использовании qt версии 4.5.1 и сенсорного экрана (OS Debian linux, драйвер penmount PM9000) в приложении "залипают" кнопки, т.е. при нажатии на сенсорный экран кнопка вдавливается, а после отпускания так и остается вдавленной.
Данное поведение наблюдается не всегда.
При компиляции того же приложения в версии qt 4.6. такой проблемы не наблюдается.
В чем м.б. причина такого поведения?
Проблема также воспроизводится для калькулятора из примеров к qt.
Под windows проблема не воспроизводится.

Тоже ловил такую штуку. Решилась использованием другого стиля
proga -style windows
Записан
kerf
Гость
« Ответ #11 : Марта 10, 2010, 10:28 »

Тоже ловил такую штуку. Решилась использованием другого стиля
proga -style windows

Не помогло...
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #12 : Марта 10, 2010, 11:52 »

А это действительно связано с сенсорным экраном, ведь они в большинстве случаев работают через протокол мышки - если просто покликать по кнопке мышью с такой же периодичностью эффекта не будет?
Есть тестовый пример с настроенными параметрами кнопок и описанием как добитьтся бага?
Записан
kerf
Гость
« Ответ #13 : Марта 10, 2010, 12:17 »

А это действительно связано с сенсорным экраном, ведь они в большинстве случаев работают через протокол мышки - если просто покликать по кнопке мышью с такой же периодичностью эффекта не будет?
Есть тестовый пример с настроенными параметрами кнопок и описанием как добитьтся бага?

Если кликать мышкой, то все нормально работает. Если через сенсорный экран, то начинаются залипания. Вывод событий для приложения показывает, что событие release для кнопки, в случае когда нажатие происходит через сенсорный экран, не всегда приходит.

У драйвера сенсорного экрана есть настройка режима нажатия: point mode и stream mode. Когда стоит настройка stream mode, то есть залипания, когда point mode залипаний нет, но в этом случае таскать скроллбары нельзя пальцем и это нам не подходит.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #14 : Марта 10, 2010, 12:56 »

Понятно!

Я работал с сенсорниками Microtouch OTL-17 в Linux там вроде нельзя в xorg указать такие режимы ( point mode и stream mode ), но у меня была мелкая проблема что при кликание по кнопкам они нажимались по 2-3 раза ( там при клике на кнопку менялась страница StackedWidget и на ней на том же месте была уже другая кнопка, а так как палец оставался на экране то кнопка кликалась вновь). Чтобы это обойти просто перевел действие от этих кнопок с press на release, то есть когда палец убирался то уже работало норм.

Все таки ваша проблема странная, неужели QPushButton что-то знает о том кто его наживает мышь или сенсор??? Если бы вы не утверждали что с одной из версий работает с другой нет я бы вообще грешил на драйвер точскрина - по сути это ведь в нем ф-я залипания для того чтобы тянуть скролл. (там кстати нет настроек какую задержку в мс считать что должен включиться режим когда тянется скролл). Видимо Qt-шники что-то меняли что совместно с этим драйвером теперь не вызывает определение этого события, а может и нет...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 2.705 секунд. Запросов: 23.