Название: QScriptEngineDebugger перехват подсказок. Отправлено: trump от Июль 07, 2014, 17:19 Если в окне кода QScriptEngineDebugger навести мышь на переменную, то появится подказка в виде значения этой переменной.
Можно ли без перекомпиляции QT перехватывать эту подсказку? Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: Old от Июль 07, 2014, 17:42 Что значит перехватывать? Получать сообщение из tooltip, блокировать tooltip?
В большинстве вариантов поможет eventFilter. Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: trump от Июль 08, 2014, 12:17 Получить сообщение из Tooltip, изменить его, показать уже измененное.
Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: Old от Июль 08, 2014, 12:28 Получить сообщение из Tooltip, изменить его, показать уже измененное. Как выше написано, попробуйте использовать фильтры событий (eventFilter).Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: trump от Июль 08, 2014, 12:35 Как выше написано, попробуйте использовать фильтры событий (eventFilter). Ну я могу установить фильтр. Код: bool eventFilter(QObject* object,QEvent* event) Как добраться до текста тултипа? Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: Old от Июль 08, 2014, 13:01 QToolTip::text()
Это статический метод. Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: trump от Июль 08, 2014, 13:16 QToolTip::text() Это статический метод. Это в данном случае не работает, но всё-равно спасибо. Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: Old от Июль 08, 2014, 14:22 Это в данном случае не работает, но всё-равно спасибо. Возвращает пустую строку?Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: trump от Июль 08, 2014, 14:30 Это в данном случае не работает, но всё-равно спасибо. Возвращает пустую строку?Да. :( Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: Old от Июль 08, 2014, 14:34 Да. :( Возможно, в момент срабатывания tooltip, а точнее instance QTipLabel еще не создано?Можно попробовать вызвать обработчик eventFilter базового класса и после его отработки проверить значение. Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: trump от Июль 08, 2014, 15:07 QObject::eventFilter нормально отрабатывает, появляется тултип, но QToolTip::text всё-равно возвращает пустую строку.
Но если пока тултип одной переменной показывается, резко перевести курсор на другую переменную, то QToolTip::text начинает возвращать нужное значение. Если убрать курсор мыши за границы окна и опять навести на переменную, то QToolTip::text опять начинает возвращать пустую строку. Код: bool eventFilter(QObject* object,QEvent* event) Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: Old от Июль 08, 2014, 15:56 Скорее всего для полной подготовки и отображения tooltip, нужно крутануть цикл обработки событий.
Чуть позже доберусь до компьютера и покажу одну мысль. Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: Old от Июль 08, 2014, 18:02 Предлагаю попробовать следующую конструкцию:
Код
Описать дополнительный слот checkToolTip, который будет вызываться через очередь событий. Название: Re: QScriptEngineDebugger перехват подсказок. Отправлено: trump от Июль 09, 2014, 10:22 Спасибо за код!
Но ничего не изменилось. :( Придется видимо перекомпилировать QT. |