Я хочу знать, как я могу открыть всплывающее меню, когда я щелкаю правой кнопкой мыши по элементам таблицы. Во всплывающем меню должны быть указаны некоторые действия, такие как добавление и удаление, которые создадут новую строку или удалят выбранную строку.
Я новичок в мире Qt, поэтому если кто-нибудь сможет дать мне полную информацию (с кодом, если это возможно), то я буду очень благодарен ему/ей.
Спасибо.
Моя цель: только в области QListWidget
и только если вы нажмете на элемент, откроется меню с Удалить.
Изменить: Хорошо, я решил проблему с QListWidget
и меню. Теперь необходимо выполнить следующее:
Если щелкнуть правой кнопкой мыши по элементу, а затем нажать "Удалить", элемент будет удален.
Мой код:
void ProvideContextMenu(const QPoint &); // MainWindow.h
// In MainWindow.cpp
ui->listFiles->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->listFiles, SIGNAL(customContextMenuRequested(const QPoint &)),
this, SLOT(ProvideContextMenu(const QPoint &)));
void MainWindow::ProvideContextMenu(const QPoint &pos)
{
QPoint item = ui->listFiles->mapToGlobal(pos);
QMenu submenu;
submenu.addAction("ADD");
submenu.addAction("Delete");
QAction* rightClickItem = submenu.exec(item);
if (rightClickItem && rightClickItem->text().contains("Delete") )
{
ui->listFiles->takeItem(ui->listFiles->indexAt(pos).row());
}
}
Edit2: хорошо, я решил всю проблему: D. Я загрузил свой код, если кому-то нужно что-то подобное, это может помочь ему/ей.