Название: shortCut Отправлено: ¤Se®ega¤ от Март 12, 2009, 16:32 Помогите с быстрыми клавишами.На виджете есть 2 менюшки (одна в MenuBar,другая контекстная).В обоих заданы shortcutы но почему-то работают только те, что связаны с MenuBar.Как мне сделать чтобы при нажатии "быстрых клавиш" из контекстного меню происходили действия? ???
Название: Re: shortCut Отправлено: xintrea от Март 12, 2009, 17:51 Да, действительно.
Если я правильно понимаю, ты делаешь контекстное меню через Action. То есть, вначале создаешь пункты меню в виде объектов QAction (пусть они даже создаются в конструкторе твоего виджета), а затем в методе типа on_customContextMenuRequested() из этих Action ты конструируешь меню (как это сделано в примерах), примерно так Код } И несмотря на то, что Action описаны в конструкторе виджета, и им назначены шорткаты, шорткаты эти не работают. Это происходит видимо потому, что Action существуют в виджете просто как объекты, но объекты эти никуда не вставлены (т.к. addAction() вызывается только при открытии контекстного меню). Но я попробовал сделать контекстное меню сразу в конструкторе, то есть оно в виджете существует все время, только скрыто. Получается, что Action уже вставлены в меню, но это тоже не помогает. Тут видимо уже играет роль то, что меню скрыто, а для скрытого меню шорткаты недоступны. Дальше мои мысли кончаются, и я тоже хочу узнать у гуру, можно ли вызывать шорткаты для Action, которые принадлежат контекстному меню. Название: Re: shortCut Отправлено: ¤Se®ega¤ от Март 12, 2009, 18:06 Да, именно так все у меня и устроено.Думаю на крайний случай можно создать в menuBare еще одно меню, сделать его невидимым и его вызывать привязать к конекстному(не пробовал, но думаю возможно).Заморорчено конечно, хотелось бы попроще. :-\
Название: Re: shortCut Отправлено: Пантер от Март 12, 2009, 18:08 this->addAction(QAction*)
Название: Re: shortCut Отправлено: xintrea от Март 12, 2009, 18:14 this->addAction(QAction*) То есть, решение в том, что одну и ту же Action надо вставить и в контекстное меню, и назначить всему виджету? Название: Re: shortCut Отправлено: ¤Se®ega¤ от Март 12, 2009, 18:19 Спасибо.Заработало :D.Хотелось бы еще знать почему такое происходит.
Название: Re: shortCut Отправлено: ¤Se®ega¤ от Март 12, 2009, 18:25 ну получается что у вджета есть Действия, из которых мы делаем контекстное меню, и при нажатии "быстрых клавиш" срабатывают действия виджета.я так понимаю.
|