Название: Qt Toolbar BUG! Отправлено: kirill от Марта 01, 2010, 12:21 Под виндой с любой Qt, вплоть до последней, есть такой косяк с тулбаром.
Нужно: QMainWindow с тулбаром. Кнопка на тулбаре должна что-нибудь делать, желательно показывать некий диалог. Диалог должен закрываться по Esc. Делаем: Быстро быстро клацаем по кнопке тулбара и тут же жмем Esc, закрывая тем самым диалог. На определенной итерации мы увидем, что кнопку тулбара залипла. Так, как будто у нее стоит статус Checkable. Это легко проверить с Assistant'ом. Вызываем печать через тулбар и отменяем ее по Esc. Итог: Весьма неприятно. На Qt и так полно нападок от нативщиков, и тут этот очевидный баг. Или как то можно побороть? Название: Re: Qt Toolbar BUG! Отправлено: cya-st от Марта 01, 2010, 12:32 У меня такого ефекта на Win7 не наблюдается.
Название: Re: Qt Toolbar BUG! Отправлено: kirill от Марта 01, 2010, 14:01 У меня такого ефекта на Win7 не наблюдается. плохо жмакалНазвание: Re: Qt Toolbar BUG! Отправлено: NicK от Марта 01, 2010, 14:16 Цитировать Быстро быстро клацаем по кнопке тулбара и тут же жмем Esc А зачем вообще так делать? :)Как варианты: 1. при закрытии диалога можно делать паузу, например, в полсекунды. 2. при открытии диалога disable'ить кнопку, а при закрытии возвращать в enable. :) Название: Re: Qt Toolbar BUG! Отправлено: SABROG от Марта 01, 2010, 14:22 Старый баг. Я об одном таком репортил, когда меню было пустое и итем играл роль кнопки. Но там жесче было, при нажатии кнопка отжималась и оставляла навсегда состояние как будто на неё наведена мышка. Потом пофиксили но видимо не до конца.
Название: Re: Qt Toolbar BUG! Отправлено: kirill от Марта 01, 2010, 14:32 Цитировать Быстро быстро клацаем по кнопке тулбара и тут же жмем Esc А зачем вообще так делать? :)Как варианты: 1. при закрытии диалога можно делать паузу, например, в полсекунды. 2. при открытии диалога disable'ить кнопку, а при закрытии возвращать в enable. :) Второе не канает, пробовал. С первым можно попробовать Название: Re: Qt Toolbar BUG! Отправлено: Авварон от Марта 02, 2010, 01:32 возможно, стоит повторить уведомление в багтрекер?
Название: Re: Qt Toolbar BUG! Отправлено: Barmaglodd от Марта 02, 2010, 11:15 Win XP SP2, есть такой косяк. Пишите в багтрекер.
Название: Re: Qt Toolbar BUG! Отправлено: waster от Марта 08, 2010, 17:31 Там багов в этом тулбаре столько, что этот самый незначительный...
Попробуй правой кнопкой вызвать контекстное меню тулбара в ассистенте, и не закрывая это меню, надавить любую кнопку на тулбаре левой клавишей мыши, а потом, не отпуская кнопку, увести мышку за пределы этой кнопки. Попробуй таскать за тулбар на Маке: между кнопками не таскается, даже если там специально предназначенное для этого пустое пространство. Кроме того, оно ещё и принципиально по-разному работает на разных платформах. В Маке тролли типа юзают нативный тулбар, но (sic!) все кнопки Qt запихнуты в одну-единственную кнопку нативного тулбара! Помимо этого, тулбар - товарищ явно асинхронный, у него эвенты бегают неправильно, и например в момент создания окна, когда это окно ещё ни разу не появлялось на экране, никакими средствами кроме предкешированной таблицы значений невозможно угадать будущие размеры тулбара. Особенно это весело, когда заранее неизвестно, какого он будет размера, т.к. последний юзерский выбор, сделанный в предыдущий запуск программы вытаскивается из QSettings в виде "Use small icon size": yes|not. Если сравнить QToolBar и QDockWidget, то видно, что у последнего есть сигнал visibilityChanged, которого у тулбара нет - видимо, его просто не дописали, интерфейс класса не полностью комплитный... В общем, могу тебя обрадовать: если хочешь нормальный тулбар - пиши обёртку в несколько тыщ строк к нативному на твоей платформе! Название: Re: Qt Toolbar BUG! Отправлено: SABROG от Марта 08, 2010, 17:55 Попробуй правой кнопкой вызвать контекстное меню тулбара в ассистенте, и не закрывая это меню, надавить любую кнопку на тулбаре левой клавишей мыши, а потом, не отпуская кнопку, увести мышку за пределы этой кнопки. Не подтверждаю. Qt 4.6.2 Windows. (http://d.imagehost.org/0319/toolbarbugtest.gif) Если бы я отпускал мышку, то действия привязанные к кнопкам выполнялись, печать например. В общем, могу тебя обрадовать: если хочешь нормальный тулбар - пиши обёртку в несколько тыщ строк к нативному на твоей платформе! Багрепорты слали? Я например не только багрепорты отправляю, но и предложения (suggestion), если вижу, что что-то делается через пятую точку.Название: Re: Qt Toolbar BUG! Отправлено: Авварон от Марта 09, 2010, 10:32 если нажимать кнопку и уводить мышу с нее, то то, что она не срабатывает, вполне привычное поведение (к примеру сафари в винде только что проверил, как единственное окно, до которого не далеко лезть - то же самое поведение).
мак гляну, не особо экспериментировал, всегда юзал юнифайд тулбар (он красивенький) про размеры - это верно для ВСЕХ виджетов и уже обсуждалось что не ясно, что возвращать (как минимум после show, showMaximized и showFullScreen у размеров виджетов будут разные значения). А что мешает брать значение из сеттингсов напрямую? наличие сигнала у доквиджета обусловлено тем, что у негое есть кнопочка закрыть, у тулбара я такой не видел Название: Re: Qt Toolbar BUG! Отправлено: SABROG от Марта 09, 2010, 12:39 если нажимать кнопку и уводить мышу с нее, то то, что она не срабатывает, вполне привычное поведение (к примеру сафари в винде только что проверил, как единственное окно, до которого не далеко лезть - то же самое поведение). Я написал про это потому, что на видео не видно увожу ли я мышку зажатой на самом деле или нет. Он о другом вообще говорит, о том, что у него кнопка подсвеченной остается при том, что курсор уже не над кнопкой. Название: Re: Qt Toolbar BUG! Отправлено: kuzulis от Марта 09, 2010, 12:44 Цитировать Под виндой с любой Qt, вплоть до последней, есть такой косяк с тулбаром. Нужно: QMainWindow с тулбаром. Кнопка на тулбаре должна что-нибудь делать, желательно показывать некий диалог. Диалог должен закрываться по Esc. Делаем: Быстро быстро клацаем по кнопке тулбара и тут же жмем Esc, закрывая тем самым диалог. На определенной итерации мы увидем, что кнопку тулбара залипла. Так, как будто у нее стоит статус Checkable. Это легко проверить с Assistant'ом. Вызываем печать через тулбар и отменяем ее по Esc. Итог: Весьма неприятно. На Qt и так полно нападок от нативщиков, и тут этот очевидный баг. Или как то можно побороть? Подтверждаю, Qt 4.5.3 Windows , залипает. Но если потом кликнуть по залипшей кнопке - то открывается диалог и кнопка после его закрытия отлипает. Цитировать Попробуй правой кнопкой вызвать контекстное меню тулбара в ассистенте, и не закрывая это меню, надавить любую кнопку на тулбаре левой клавишей мыши, а потом, не отпуская кнопку, увести мышку за пределы этой кнопки. Не подтверждаю Qt 4.5.3 Windows |