Voglio sapere come posso aprire un menu popup quando faccio clic con il pulsante destro del mouse sugli elementi della tabella. Nel menu a comparsa devono essere fornite alcune azioni come aggiungere ed eliminare che creeranno una nuova riga o elimineranno la riga selezionata.Qt RightClick on QListWidget Apre il menu contestuale e elimina l'elemento
Sono un nuovo nel QT World, quindi se qualcuno può darmi i dettagli completi (con il codice, se possibile), allora sarò davvero grato a lui/lei.
Grazie.
Il mio obiettivo: Solo nella zona di QListWidget e solo se si fa clic su un elemento, si apre il menu con Elimina.
Edit: Ok posso risolvere il problema con il QListWidget e il menu. Tuttavia, solo ora è necessario raggiungere quanto segue:
Se si fa clic sull'elemento con il pulsante destro del mouse, quindi su Elimina, l'elemento verrà eliminato.
My Code:
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: Ok ho risolto il problema del foro: D. Ho caricato il mio codice se qualcuno ha bisogno di qualcosa del genere per poterlo aiutare.
leggere la mia risposta per correttamente utilizzando 'takeItem()' metodo –
fresco, funziona davvero – ejectamenta