Как сделать контестное меню для QTableWidget в QT5.10.0

221
22 марта 2018, 09:11

Здравствуйте, коллеги! Есть следующий вопрос. Приложение содержит, кроме всего прочего, несколько таблиц QTableWidget. Для каждой таблицы надо создать контекстное меню для правой кнопки мыши. Меню в общем единообразно: вставить, удалить, добавить строку в таблицу. Нужен пример кода, поскольку то что я нашёл либо не то, либо не работает. Окно программы разумеется сделано с помощью дизайнера форм. Пример C:\Qt\Qt5.10.0\Examples\Qt-5.10.0\widgets\mainwindows\menus как-то не помог, он ведь создаёт контекстное меню на всё окно, а не только на таблицы. Прошу сильно не пинать, я на QT перешёл только 2 мес. назад.

Answer 1

Всё довольно просто, разве что такой вариант будет реагировать и на лкм и на пкм.

  QObject::connect(tableWidget, &QTableWidget::Clicked, this, [this]{
            QMenu menu;
            auto infoA = menu.addAction("Обновить");
            QObject::connect(infoA, &QAction::triggered, this, [this](){
                Update();
            });
            menu.exec(QCursor::pos());
            });

Для реагирования только на правую кнопку, надо будет установить фильтр событий методом installEventFilter и по нажатию клавиши определять, была ли это пкм

READ ALSO
Вопрос по поводу графа

Вопрос по поводу графа

Мне нужно в моем класе Node иметь узел на вершину что сосед с текущей вершиной и расстояние между ними то есть вес ребраКак мне это все записать?...

206
Перегрузка операций и приоритет

Перегрузка операций и приоритет

Имеется три объекта одного класса с перегруженными операциями + и *Сохранят ли эти операции приоритет или нет? Почему? Например:

192
Утилита сравнения фалов

Утилита сравнения фалов

Есть утилита для сравнения файлов "testtxt" и "test1

242