Название: Наведении мыши на объекты QMenu верхнего уровня. Отправлено: SubaroMows от Март 08, 2011, 15:37 Доброго времени суток.
Есть стандартная программа со стандартным меню, при наведении мыши на элемент Action в меню, в строке состояния отображается подсказка, которая задаётся в рукопашную в поле statusTrip, как показано на рисунке. (http://imglink.ru/pictures/08-03-11/3cbf2dea730358d05e8e71b2f980734a.jpg) (http://imglink.ru) Далее встала задача чтобы подсказки выводились для верхних меню:File, Edit, Help. Пример на рисунке: (http://imglink.ru/pictures/08-03-11/3a725312f000418e9283dc668c5a7aa6.jpg) (http://imglink.ru) Как ни странно но у них тоже есть поля statusStrip, но они не работают. Стал искать окольные пути через eventFilter и mouseMoveEvent. Первый вариант: Код: ... Второй вариант: Предварительно установил setMouseTracking(true); Код: void GlobalForm::mouseMoveEvent(QMouseEvent* event) результат тоже 0. Друзья помогите решить эту задачку, очень надо. Я уже отчаялся. Название: Re: Наведении мыши на объекты QMenu верхнего уровня. Отправлено: serg_hd от Март 09, 2011, 00:05 Может тогда поставить eventFilter на QMenuBar (которому ты скармливаешь QMenu) - он точно на Enter мыши реагирует - по его children() распознавать нужный QMenu и через QMainWindow>statusBar()->showMessage() показывать нужный текст в зависимости от конкретного QMenu?
Название: Re: Наведении мыши на объекты QMenu верхнего уровня. Отправлено: GreatSnake от Март 09, 2011, 10:05 Цитировать Как ни странно но у них тоже есть поля statusStrip, но они не работают. Как ни странно, но всё работает:Код
Название: Re: Наведении мыши на объекты QMenu верхнего уровня. Отправлено: serg_hd от Март 09, 2011, 22:51 Цитировать Как ни странно но у них тоже есть поля statusStrip, но они не работают. Как ни странно, но всё работает:Код
он видимо имел ввиду QMenu::setStatusTip(), а не QAction::setStatusTip(), хотя последнее и есть ответ на вопрос. Для каких тогда целей первый вариант? |