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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Баги на Mac OS X  (Прочитано 6024 раз)
serkol
Гость
« : Ноябрь 23, 2010, 01:57 »

Я заметил 2 бага Qt GUI на Mac OS X. Я открыл темы на bugreports.qt.nokia.com, но похоже что их не рассматривали, и не понятно когда рассмотрят.

Если Вам тоже мешают эти баги, проголосуйте пожалуйста за эти темы на bugreports.qt.nokia.com

1. В Mac OS X часто используются модальные диалоги, которые вылезают из заголовка главного окна, и остаются прикрепленными к нему. При этом можно перетянуть главное окно вместе с диалогом, если тянуть за заголовок главного окна.

Баг: стоит кликнуть на заголовок главного окна, диалог теряет фокус (а не должен), на нем все становится серым. Если теперь кликать на диалог, все работает, но все выглядит как disabled - все серое.

Обнаружено на Mac OS 10.6.5, Qt 4.7.1 Cocoa

http://bugreports.qt.nokia.com/browse/QTBUG-15474

2. Колесо прокрутки (scroll wheel на мышке) продолжает крутить виджет после перемещения мыши за пределы виджета. Например QDateEdit (или что угодно другое со скролом) - кликни на него, теперь передвинь курсор мышки за его пределы, например над фоном окна программы (мышь должна быть над чем-то что не скролируется), прокрути колесо прокрутки - QDateEdit меняет дату.

Это особенно сильно достает если пользоваться новой эпловской мышкой Magic Mouse - у нее вся поверхность работает как колесо прокрутки, так что часто возникают неумышленные прокрутки. Эта мышка идет со всеми новыми эпловскими десктопами, так что этот баг заметят многие. Меня это уже достало :-) причем в не-Qt-ишных программах я такого не вижу.

Виджеты должны игнорировать сигналы прокрутки, если курсор мыши находится за их пределами.

http://bugreports.qt.nokia.com/browse/QTBUG-15475
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Ноябрь 23, 2010, 09:32 »

Цитировать
Виджеты должны игнорировать сигналы прокрутки, если курсор мыши находится за их пределами.
Согласен, но вот только что проверил под виндой - поведение такое же. Правда через RDP, т.к. на работе сижу на линуксе.
Записан

Qt 5.11/4.8.7 (X11/Win)
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #2 : Ноябрь 23, 2010, 11:34 »

Первое баг, а второе - фича дейтэдита и иже с ним, вполне понятная кстати (тк у нее скролл не скролл а допфича на колесико). На нормальных скролл виджетах всё ок.
Лучше запостите баг креатора о сочетании cmd+скролл, который из-за гребаного кинетик скроллинга у мыши зумит текст в креаторе. Added: уже есть http://bugreports.qt.nokia.com/browse/QTBUG-9803?focusedCommentId=133399
Да, а в каких программах вы дэйтэдит нашли?Улыбающийся
« Последнее редактирование: Ноябрь 23, 2010, 11:44 от Авварон » Записан
serkol
Гость
« Ответ #3 : Ноябрь 24, 2010, 03:02 »

С тем что это фича dateedit - я не согласен. Когда мышь за пределами контрола, он должен забыть о мыше. У меня Magic Mouse, и любое скольжение пальца по ней вызывает скрол. Я тестировал свою программу, и часто в dateedit у меня оказывалась неправильная дата, потому что после ввода даты, при перемещении мыши к другому контролу, палец немного скользил по поверхности мыши (уже за пределами dateedit), и в нем менялась дата.

Так же себя ведет combobox.

Мне кажется что еще в каких-то контролах я видел это. Если не исправят к моменту выхода моей проги, прийдется наверное наследовать от всех таких контролов, и гасить event со скролом. Я уже сделал так с qtabbar - он вообще не должен реагировать на скролл. В родных программах на маке такой контрол не реагирует на скрол. С этой гребаной Magic Mouse вообще проблематично выбрать нужный таб, если он реагирует на скрол. Чуть дрогнул палец, и уже выбран другой таб.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #4 : Ноябрь 24, 2010, 09:23 »

Цитировать
Когда мышь за пределами контрола, он должен забыть о мыше.
Это уже, имхо, вопрос не Qt, а к MacOS. Нафига туда вообще шлётся событие?
Не думаю, что тролли специально для этого перехватывают события.
Записан

Qt 5.11/4.8.7 (X11/Win)
zenden
Гость
« Ответ #5 : Ноябрь 24, 2010, 11:52 »

Цитировать
Когда мышь за пределами контрола, он должен забыть о мыше.
Это уже, имхо, вопрос не Qt, а к MacOS. Нафига туда вообще шлётся событие?
Не думаю, что тролли специально для этого перехватывают события.


Qt не использует нативные контролы операционки, и вообще, с точки зрения операционки -  в окне, созданном Qt, никаких контролов нет. Поэтому Qt сама рассылает события для дочерних QWidget, по своему собственному велосипедному методу.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #6 : Ноябрь 24, 2010, 13:18 »

Цитировать
Поэтому Qt сама рассылает события для дочерних QWidget, по своему собственному велосипедному методу.
Чушь несёте. Причём здесь получение события от колеса прокрутки?
Записан

Qt 5.11/4.8.7 (X11/Win)
ufna
Гость
« Ответ #7 : Ноябрь 24, 2010, 13:36 »

Проверил на семерке - глюка "с прокруткой" нет => это конизьм ОС
Записан
zenden
Гость
« Ответ #8 : Ноябрь 24, 2010, 19:06 »

Причём здесь получение события от колеса прокрутки?

а при том, что события от мыши  приходят напрямую от системы только виджетам, у которых есть "native window" . По-умолчанию они есть только у top-level виджетов.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #9 : Ноябрь 24, 2010, 19:12 »

Извиняюсь, чушь сморозил я, а не Вы. Не внимательно прочитал:
Цитировать
... например над фоном окна программы (мышь должна быть над чем-то что не скролируется)...
почему-то в голове отложилось, что курсор вне окна был.
Вы абсолютно правы - здесь косяк Qt.
Записан

Qt 5.11/4.8.7 (X11/Win)
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #10 : Ноябрь 24, 2010, 20:38 »

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


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