QTableView + addAction, создание контектсного меню для QTableView |
Здравствуйте, гость ( Вход | Регистрация )
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:40
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
но как это реализовать для 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); |
|
|
Текстовая версия | Сейчас: 4.12.2024, 17:51 |