У меня есть метод, чтобы удалить список файлов на QListWidget
:Правая кнопка в Listwidget
void MainWindow::ProvideContextMenu(const QPoint &pos)
{
QPoint item = ui->listWidget->mapToGlobal(pos);
QMenu submenu;
submenu.addAction("Delete");
QAction* RightClick = submenu.exec(item);
if(RightClick->text().contains("Delete"))
{
qDeleteAll(ui->listWidget->selectedItems());
}
}
У меня есть две проблемы:
После того как я правой кнопкой мыши и появляется кнопка удаления, если я нажимаю в другом месте, кроме удаления, вся программа закрывается. Не знаю, почему.
Как вы можете видеть на картинке, я не выбрал файл, просто щелкнув правой кнопкой мыши по файлу. По-видимому, это не считается выбранным. Поэтому каждый раз, когда я должен удалить, сначала я должен выбрать файл, затем щелкнуть правой кнопкой мыши. Есть ли способ обойти это?
Редактировать 1: Все еще не найдено решения второй проблемы.
Спасибо! вы полностью решили проблему остановки программы, но я не могу исправить проблему с нажатием. – user5603723
Как вы подключили 'ProvideContextMenu'? – LogicStuff
connect (ui-> listWidgetOutput, SIGNAL (customContextMenuRequested (const QPoint &)), это, SLOT (ProvideContextMenu (const QPoint &))); – user5603723