Russian Qt Forum
Ноябрь 24, 2024, 07:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Shortcuts в контекстном меню  (Прочитано 2591 раз)
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« : Ноябрь 12, 2015, 11:06 »

Привет, друзья!
Есть у меня класс, наследованный от QTableView. Я в нём создаю меню:
Код
C++ (Qt)
void TableView::createContextMenu(){
   QAction *copyAct = new QAction("Копировать", &contextMenu);
   QAction *removeRowAct = new QAction("Удалить строки", &contextMenu);
 
   copyAct->setShortcut(QKeySequence::Copy);
   removeRowAct->setShortcut(QKeySequence::Delete);
 
   connect(copyAct, SIGNAL(triggered()), SLOT(copySelectedToClipboard()));
   connect(removeRowAct, SIGNAL(triggered()), SLOT(removeSelectedRows()));
 
   QList<QAction*> actionList = {
       copyAct,
       removeRowAct
   };
   contextMenu.addActions(actionList);
}
 
Но при таком подходе у меня не срабатывают горячие клавиши.
Что не так?
« Последнее редактирование: Ноябрь 12, 2015, 12:15 от __Heaven__ » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #1 : Ноябрь 12, 2015, 11:42 »

Похоже про твое меню кроме TableView никто и не знает.
Да и нужно ли оно? Ведь Qt может всё сам за тебя сделать.
Достаточно actionList дабавить непоследственно TableView и задать TableView::setContextMenuPolicy( Qt::ActionsContextMenu ).
Записан

Qt 5.11/4.8.7 (X11/Win)
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #2 : Ноябрь 12, 2015, 12:13 »

Спс, заработало. А я пытался сделать через contextMenuEvent.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.074 секунд. Запросов: 23.