QTableWidget - контекстное меню только для определенных ячеек / столбцов - PullRequest
1 голос
/ 23 мая 2011

Я использую QTableWidget для отображения данных. Я знаю, что могу использовать метод addAction для добавления контекстного меню. Как я могу ограничить контекстное меню только определенными ячейками или столбцами? addAction существует для QActionGroup QGraphicsWidget QMenu QMenuBar QToolBar QWidget. Должен ли я каким-то образом фильтр отключить / включить сигнал / слоты? Работать с событиями правого клика?

Похожий вопрос: как получить разные контекстные меню для разных строк?

Спасибо и ура, Matthias

1 Ответ

2 голосов
/ 23 мая 2011

Другой способ создания пользовательских контекстных меню - реализовать слот для сигнала QWidget::customContextMenuRequested(). Там вы можете запросить ячейку под позицией (QTableWidget::itemAt() - следите за глобальным отображением виджетов!), А затем создать собственное меню, используя QMenu и QAction.

Кроме того, я бы заранее построил меню, а затем только exec () в слоте.

Помните, что вы должны изменить свойство QWidget::ContextMenuPolicy виджета на Qt::CustomContextMenu!

...