Я пытаюсь добавить контекстное меню (контекстное меню) в Qt QListView. Я вижу в Qt 3.3 есть «contextMenuRequested» (который я мог бы использовать) - http://doc.qt.digia.com/3.3/qlistview.html#contextMenuRequested. Тем не менее, я не вижу такого метода в Qt4. Кто-нибудь знает, как добавить контекстное меню в QListView?Qt QListView - контекстные меню?
ответ
Я не знаю, почему сигнал был удален, но он по-прежнему QWidget
, так что вы всегда можете переопределить
void QWidget::contextMenuEvent (QContextMenuEvent*);
или
void QWidget::customContextMenuRequested(const QPoint& pos);
в зависимости от настройки политики Контекстное меню для виджета ,
Я не знаю, что вы пытаетесь сделать, но вы можете легко добавить в контекстное меню любого виджета, вызвав QWidget::AddAction(QAction*)
с действиями, которые вы хотите добавить в свой контекстное меню и настройки политики контекстного меню
widget->setContextMenuPolicy(Qt::ActionsContextMenu);
виджет подготовит и показать контекстное меню, все, что вам нужно сделать, это подключить действия при triggered()
сигналов в соответствующие обработчик
в зависимости от того, как вы настроили ContextMenuPolicy в QWidget
у вас есть несколько опции.
Если вы установили его на Qt::DefaultContextMenu
, тогда просто переопределите защищенную функцию contextMenuEvent(QContextMenuEvent*)
в QWidget
. Я считаю, что это значение по умолчанию.
Если вы установили его на Qt::ActionsContextMenu
, просто добавьте все свои действия в свой виджет и дайте дескриптору системы Qt контекстное меню.
Или, если вы установили его на Qt::CustomContextMenu
, вам необходимо подключиться к сигналу customContextMenuRequested()
и реализовать собственный обработчик контекстного меню.
Все это задокументировано в документации ContextMenuPolicy, доступной в Интернете.
Обновленные ссылки на описание ContextMenuPolicy: [qt5] (http://doc.qt.io/qt-5/qwidget.html#contextMenuPolicy-prop) и [Qt4] (http://doc.qt.io/qt-4.8/qwidget.html#contextMenuPolicy-prop) – avtomaton
customContextMenuRequested() представляет собой сигнал, а не переопределение функции –