Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Июль 03, 2014, 16:43



Название: Источник QAction
Отправлено: Igors от Июль 03, 2014, 16:43
Добрый день

Как в слоте (подключенном к QAction с QueuedConnection) определить был ли это выбор из меню или сработал shortcut?

Спасибо


Название: Re: Источник QAction
Отправлено: GreatSnake от Июль 03, 2014, 16:54
Если shortcut назначен через QAction::setShortcut(), то никак.

Но, если через QAction::setShortcutContext( Qt::WidgetShortcut ) сбросить его "глобальность" и создать отдельный QShortcut, то уже можно)


Название: Re: Источник QAction
Отправлено: Igors от Июль 03, 2014, 17:14
Если shortcut назначен через QAction::setShortcut(), то никак.
Верю

Но, если через QAction::setShortcutContext( Qt::WidgetShortcut ) сбросить его "глобальность" и создать отдельный QShortcut, то уже можно)
Там на Вындоуз не видно др ходов кроме Qt::ApplicationShortcut

Может стоит взять чуть "ширше" - как апдейтить меню? Если добавлять/удалять айтемы - то напрямую, в том месте где случилось. А вот остальное (enabled/disabled, имя изменилось) напрямую получается довольно хлопотно, в приложении (которым я занимаюсь) меню апдейтится "перед тем как вызывается". Отловить момент входа юзверя в меню несложно, но вот что если по клавише hotkey? Сейчас сделано "апдейт всего меню по нажатию Command" - коряво, нужно проверять только нажатый айтем.

Может прорываться через QShortcitEvent ?


Название: Re: Источник QAction
Отправлено: GreatSnake от Июль 03, 2014, 17:21
При создании QAction shortcut добавляйте для галочки.
Настоящий shortcut создавайте через QShortcut.
Меню обновляйте непосредственно перед его показом.


Название: Re: Источник QAction
Отправлено: Igors от Июль 03, 2014, 20:38
При создании QAction shortcut добавляйте для галочки.
Настоящий shortcut создавайте через QShortcut.
Меню обновляйте непосредственно перед его показом.
Не очень понял. Сделал так: когда получаю QEvent::ShortcutOverride то по клавише нахожу этот action (создал QHash <int, QAction *>) и там уже с ним разбираюсь. Недостаток: на ОSX меню успевает мигнуть/подсветиться  :'(


Название: Re: Источник QAction
Отправлено: GreatSnake от Июль 04, 2014, 08:08
Я уже не первый раз наблюдаю как Вы изначально запрашиваете здесь варианты решения одной проблемы,
но в итоге своим каким-то странным путём приходите к какому-то совершенно другому решению.
Или у Вас какие-то проблемы с постановкой или ...

В начале топика была одна проблема. Потом при взятии чуть "ширше" совершенно другая.
После которой мне показалось, что есть сложности в формировании меню.
На что было предложено формировать меню по запросу.
В итоге результат довольно-таки странный.


Название: Re: Источник QAction
Отправлено: Igors от Июль 04, 2014, 10:18
В начале топика была одна проблема. Потом при взятии чуть "ширше" совершенно другая.
Та же самая. Я хочу разбираться с enabled/disabled (айтема меню) в момент срабатывания по клавише или в момент показа. То что сделал вчера - нехорошо, сегодня заклинило в др месте. Обдумаю более тщательно, тогда отпишусь