2013-03-19 3 views
1

Я хочу добавить страницу справки для моего приложения Qt. Пользователь может использовать подсказку Qt :: WhatsThis, чтобы получить объяснение по теме и URL-адресу веб-страницы. Я редактирую WhatsthisTooltips с Qt Designer и даю ему язык indepentend.глобальный захват событий для класса QEventfilter

Теперь я создаю класс LinkFilter для фильтрации, устанавливаю его в класс view и реагирую на событие QEvent :: WhatsThisClicked. Это прекрасно работает.

Теперь я бы поймал каждый QEvent :: WhatsThisClicked в моем приложении, но я выгляжу действительно беспорядочно, чтобы установить его на самом деле каждый диалог/вид/действие/виджет. Это какой-то глобальный eventHandler, можно ли установить мой класс LinkEvent? Должен быть хороший способ стиля Qt для решения этого.

Для установки EventFilter я сильно следовал этому видео-учебник http://youtu.be/DHgbYxpZkbg

ответ

2

http://qt-project.org/doc/qt-4.8/qapplication.html#notify

По сути вы должны создать подкласс QApplication и переопределить эту функцию. Затем вы можете проверить, является ли это типом события, которое вы ищете, и действовать соответствующим образом.

+0

Подсказка с классом QApplication была очень хорошей. Я мог бы легко установить событие в класс приложения. Теперь он ловит каждый сингл, не меняя «нормального» поведения. QApplication qApplication (argc, argv); LinkFilter * filter = new LinkFilter (this); qApplication.installEventFilter (фильтр); – norca