Название: Не работают горячие клавиши при скрытии меню Отправлено: deMax от Декабря 06, 2013, 09:54 В полноэкранном режиме меню автоматически скрывается (показывается при подводе к границе указателя мыши). Когда меню видно - горячие клавиши работают, когда меню скрыто - не работают.
Название: Re: Не работают горячие клавиши при скрытии меню Отправлено: Bepec от Декабря 06, 2013, 10:03 У шорткаров какая область видимости? Qt::ShortcutContext в смысле.
Название: Re: Не работают горячие клавиши при скрытии меню Отправлено: deMax от Декабря 06, 2013, 10:10 У меня через QAction сделанно
Код: MainWindow::MainWindow() { Название: Re: Не работают горячие клавиши при скрытии меню Отправлено: deMax от Декабря 06, 2013, 10:33 Хотя все придумал. В QAction не коннектить, а QShortCut соединить.
только пишет (когда они оба включены) Warning: QAction::eventFilter: Ambiguous shortcut overload: Ctrl+F приходиться при показе меню shortcut отключать, при скрытии включать. Криво, но работает. Название: Re: Не работают горячие клавиши при скрытии меню Отправлено: Fregloin от Декабря 06, 2013, 11:43 сталкивался с такой же проблемой. решал созданием шорткара
Название: Re: Не работают горячие клавиши при скрытии меню Отправлено: deMax от Декабря 10, 2013, 13:54 Fregloin, так я и создал QShortcut. Просто чтобы в меню показывались комбинации клавиш, пришлось QAction комбинацию назначить. Но тогда при видимом меню получается 2 комбинации и ни одна не работает, приходится отключать QShortcut.
Название: Re: Не работают горячие клавиши при скрытии меню Отправлено: Bepec от Декабря 10, 2013, 16:53 Qmenu можно назначить уже существующий шорткар.
Название: Re: Не работают горячие клавиши при скрытии меню Отправлено: Fregloin от Декабря 13, 2013, 09:58 поподробнее пожалуйста, я искал но не нашёл.
Название: Re: Не работают горячие клавиши при скрытии меню Отправлено: deMax от Декабря 17, 2013, 07:17 Цитировать поподробнее пожалуйста, я искал но не нашёл. присоединяюсь к просьбе.Название: Re: Не работают горячие клавиши при скрытии меню Отправлено: Bepec от Декабря 17, 2013, 10:58 Ошибся однако. Нет там такого.
Наскидку вот вам абзац из assistant Цитировать Warning: You should not normally need to use this function since Qt's shortcut system enables/disables shortcuts automatically as widgets become hidden/visible and gain or lose focus. It is best to use QAction or QShortcut to handle shortcuts, since they are easier to use than this low-level function. Это заслуга Название: Re: Не работают горячие клавиши при скрытии меню Отправлено: Bepec от Декабря 17, 2013, 12:59 В принципе как я и говорил, это заслуга системы шорткаров Qt. (верно для версии 4.7.2)
В самом шорткаре содержится следующая структура: (http://img.pixs.ru/storage/3/5/7/1png_9291472_10123357.png) (http://pixs.ru/showimage/1png_9291472_10123357.png) Клавиша, контекст, enabled, autorepeat, id и ... owner - родитель шорткара. По нижеследующему коду проверяется следующее - Контекст шорткара (context), виджет, который привязан к шорткару(owner) и активное окно приложения :) Если родитель невидим или отключен - мы убиваем шорткар... В общем то это и есть ответ на ваш вопрос - почему не работает. Потому что такая логика заложена в систему шорткаров Qt при использовании QAction. Решением проблемы будут QShortcut с родителем в виде главного окна приложения. Правда остаётся проблема надписей, но тут я умываю руки - итак покопался :D Код: bool QShortcutMap::correctWidgetContext(Qt::ShortcutContext context, QWidget *w, QWidget *active_window) const PS уфф... PPS я так и не нашёл где напрямую написано это в Assistant, но я думаю что таие строки там есть. |