Russian Qt Forum
Июня 09, 2025, 15:05
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Qt Toolbar BUG!
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Qt Toolbar BUG! (Прочитано 8089 раз)
kirill
Гость
Qt Toolbar BUG!
«
:
Марта 01, 2010, 12:21 »
Под виндой с любой Qt, вплоть до последней, есть такой косяк с тулбаром.
Нужно: QMainWindow с тулбаром. Кнопка на тулбаре должна что-нибудь делать, желательно показывать некий диалог. Диалог должен закрываться по Esc.
Делаем: Быстро быстро клацаем по кнопке тулбара и тут же жмем Esc, закрывая тем самым диалог. На определенной итерации мы увидем, что кнопку тулбара залипла. Так, как будто у нее стоит статус Checkable.
Это легко проверить с Assistant'ом. Вызываем печать через тулбар и отменяем ее по Esc.
Итог: Весьма неприятно. На Qt и так полно нападок от нативщиков, и тут этот очевидный баг.
Или как то можно побороть?
Записан
cya-st
Гость
Re: Qt Toolbar BUG!
«
Ответ #1 :
Марта 01, 2010, 12:32 »
У меня такого ефекта на Win7 не наблюдается.
Записан
kirill
Гость
Re: Qt Toolbar BUG!
«
Ответ #2 :
Марта 01, 2010, 14:01 »
Цитата: cya-st от Марта 01, 2010, 12:32
У меня такого ефекта на Win7 не наблюдается.
плохо жмакал
Записан
NicK
Гость
Re: Qt Toolbar BUG!
«
Ответ #3 :
Марта 01, 2010, 14:16 »
Цитировать
Быстро быстро клацаем по кнопке тулбара и тут же жмем Esc
А зачем вообще так делать?
Как варианты:
1. при закрытии диалога можно делать паузу, например, в полсекунды.
2. при открытии диалога disable'ить кнопку, а при закрытии возвращать в enable.
Записан
SABROG
Гость
Re: Qt Toolbar BUG!
«
Ответ #4 :
Марта 01, 2010, 14:22 »
Старый баг. Я об одном таком репортил, когда меню было пустое и итем играл роль кнопки. Но там жесче было, при нажатии кнопка отжималась и оставляла навсегда состояние как будто на неё наведена мышка. Потом пофиксили но видимо не до конца.
Записан
kirill
Гость
Re: Qt Toolbar BUG!
«
Ответ #5 :
Марта 01, 2010, 14:32 »
Цитата: NicK от Марта 01, 2010, 14:16
Цитировать
Быстро быстро клацаем по кнопке тулбара и тут же жмем Esc
А зачем вообще так делать?
Как варианты:
1. при закрытии диалога можно делать паузу, например, в полсекунды.
2. при открытии диалога disable'ить кнопку, а при закрытии возвращать в enable.
Второе не канает, пробовал.
С первым можно попробовать
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Qt Toolbar BUG!
«
Ответ #6 :
Марта 02, 2010, 01:32 »
возможно, стоит повторить уведомление в багтрекер?
Записан
Barmaglodd
Гость
Re: Qt Toolbar BUG!
«
Ответ #7 :
Марта 02, 2010, 11:15 »
Win XP SP2, есть такой косяк. Пишите в багтрекер.
Записан
waster
Гость
Re: Qt Toolbar BUG!
«
Ответ #8 :
Марта 08, 2010, 17:31 »
Там багов в этом тулбаре столько, что этот самый незначительный...
Попробуй правой кнопкой вызвать контекстное меню тулбара в ассистенте, и не закрывая это меню, надавить любую кнопку на тулбаре левой клавишей мыши, а потом, не отпуская кнопку, увести мышку за пределы этой кнопки.
Попробуй таскать за тулбар на Маке: между кнопками не таскается, даже если там специально предназначенное для этого пустое пространство.
Кроме того, оно ещё и принципиально по-разному работает на разных платформах. В Маке тролли типа юзают нативный тулбар, но (sic!) все кнопки Qt запихнуты в одну-единственную кнопку нативного тулбара!
Помимо этого, тулбар - товарищ явно асинхронный, у него эвенты бегают неправильно, и например в момент создания окна, когда это окно ещё ни разу не появлялось на экране, никакими средствами кроме предкешированной таблицы значений невозможно угадать будущие размеры тулбара. Особенно это весело, когда заранее неизвестно, какого он будет размера, т.к. последний юзерский выбор, сделанный в предыдущий запуск программы вытаскивается из QSettings в виде "Use small icon size": yes|not.
Если сравнить QToolBar и QDockWidget, то видно, что у последнего есть сигнал visibilityChanged, которого у тулбара нет - видимо, его просто не дописали, интерфейс класса не полностью комплитный...
В общем, могу тебя обрадовать: если хочешь нормальный тулбар - пиши обёртку в несколько тыщ строк к нативному на твоей платформе!
«
Последнее редактирование: Марта 08, 2010, 17:36 от waster
»
Записан
SABROG
Гость
Re: Qt Toolbar BUG!
«
Ответ #9 :
Марта 08, 2010, 17:55 »
Цитата: waster от Марта 08, 2010, 17:31
Попробуй правой кнопкой вызвать контекстное меню тулбара в ассистенте, и не закрывая это меню, надавить любую кнопку на тулбаре левой клавишей мыши, а потом, не отпуская кнопку, увести мышку за пределы этой кнопки.
Не подтверждаю. Qt 4.6.2 Windows.
Если бы я отпускал мышку, то действия привязанные к кнопкам выполнялись, печать например.
Цитата: waster от Марта 08, 2010, 17:31
В общем, могу тебя обрадовать: если хочешь нормальный тулбар - пиши обёртку в несколько тыщ строк к нативному на твоей платформе!
Багрепорты слали? Я например не только багрепорты отправляю, но и предложения (suggestion), если вижу, что что-то делается через пятую точку.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Qt Toolbar BUG!
«
Ответ #10 :
Марта 09, 2010, 10:32 »
если нажимать кнопку и уводить мышу с нее, то то, что она не срабатывает, вполне привычное поведение (к примеру сафари в винде только что проверил, как единственное окно, до которого не далеко лезть - то же самое поведение).
мак гляну, не особо экспериментировал, всегда юзал юнифайд тулбар (он красивенький)
про размеры - это верно для ВСЕХ виджетов и уже обсуждалось что не ясно, что возвращать (как минимум после show, showMaximized и showFullScreen у размеров виджетов будут разные значения). А что мешает брать значение из сеттингсов напрямую?
наличие сигнала у доквиджета обусловлено тем, что у негое есть кнопочка закрыть, у тулбара я такой не видел
Записан
SABROG
Гость
Re: Qt Toolbar BUG!
«
Ответ #11 :
Марта 09, 2010, 12:39 »
Цитата: Авварон от Марта 09, 2010, 10:32
если нажимать кнопку и уводить мышу с нее, то то, что она не срабатывает, вполне привычное поведение (к примеру сафари в винде только что проверил, как единственное окно, до которого не далеко лезть - то же самое поведение).
Я написал про это потому, что на видео не видно увожу ли я мышку зажатой на самом деле или нет. Он о другом вообще говорит, о том, что у него кнопка подсвеченной остается при том, что курсор уже не над кнопкой.
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Qt Toolbar BUG!
«
Ответ #12 :
Марта 09, 2010, 12:44 »
Цитировать
Под виндой с любой Qt, вплоть до последней, есть такой косяк с тулбаром.
Нужно: QMainWindow с тулбаром. Кнопка на тулбаре должна что-нибудь делать, желательно показывать некий диалог. Диалог должен закрываться по Esc.
Делаем: Быстро быстро клацаем по кнопке тулбара и тут же жмем Esc, закрывая тем самым диалог. На определенной итерации мы увидем, что кнопку тулбара залипла. Так, как будто у нее стоит статус Checkable.
Это легко проверить с Assistant'ом. Вызываем печать через тулбар и отменяем ее по Esc.
Итог: Весьма неприятно. На Qt и так полно нападок от нативщиков, и тут этот очевидный баг.
Или как то можно побороть?
Подтверждаю, Qt 4.5.3 Windows , залипает.
Но если потом кликнуть по залипшей кнопке - то открывается диалог и кнопка после его закрытия отлипает.
Цитировать
Попробуй правой кнопкой вызвать контекстное меню тулбара в ассистенте, и не закрывая это меню, надавить любую кнопку на тулбаре левой клавишей мыши, а потом, не отпуская кнопку, увести мышку за пределы этой кнопки.
Не подтверждаю Qt 4.5.3 Windows
«
Последнее редактирование: Марта 09, 2010, 12:46 от kuzulis
»
Записан
ArchLinux x86_64 / Win10 64 bit
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...