crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QTableView + addAction, создание контектсного меню для QTableView
rrmini
  опции профиля:
сообщение 11.2.2010, 14:24
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 41
Регистрация: 23.11.2009
Пользователь №: 1251

Спасибо сказали: 0 раз(а)




Репутация:   0  


Имеем следующий код:
CODE
view = new QTableView;
......
view->addAction(action1);
view->addAction(action2);
...
view->addAction(actionN);


в результате получаем таблицу, в которой можно правым щелчком мыши по строке получить контектстное меню с действиями.

Вопрос:
как сделать в выпадающем меню строку, в которой будет открываться еще одно подменю со своими действиями?

для QMenu делается к примеру так:
CODE
menu = menuBar()->addMenu(trUtf8("Главное меню"));
menu1 = menu->addMenu(trUtf8("Под меню"));
menu1 -> addAction( .... );
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.2.2010, 15:01
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Один элемент меню - QAction, соответственно к нему и нужно добавить ещё одно действие
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rrmini
  опции профиля:
сообщение 11.2.2010, 15:22
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 41
Регистрация: 23.11.2009
Пользователь №: 1251

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 11.2.2010, 15:01) *
Один элемент меню - QAction, соответственно к нему и нужно добавить ещё одно действие


именно так , но как это реализовать для QTableView?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.2.2010, 15:40
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(rrmini @ 11.2.2010, 18:22) *
но как это реализовать для QTableView?
А что ты на нём зациклился. Самый простой, на мой взгляд, способ:
Создать нужное тебе меню. затем у этого меню попросить его коневое действие (menuAction()), а это действие поместить в QWidget::addAction.

Хотя более удобным является способ создания меню по запросу:
void QWidget::customContextMenuRequested ( const QPoint & pos ) [signal]
предварительно установив политику QWidget::setContextMenuPolicy
И создать слот в котором будет создавать/показываться нужное меню
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rrmini
  опции профиля:
сообщение 11.2.2010, 15:55
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 41
Регистрация: 23.11.2009
Пользователь №: 1251

Спасибо сказали: 0 раз(а)




Репутация:   0  


В итоге реализовал так:

CODE
newMenu = new QMenu(this);
actionN->setMenu(newMenu);
newMenu->addAction(actionNew);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 12.12.2024, 9:18