Devi impostare la proprietà contextMenuPolicy a Qt::CustomContextMenu e gestire il segnale customContextMenuRequested.
Devi impostare la proprietà contextMenuPolicy a Qt::CustomContextMenu e gestire il segnale customContextMenuRequested.
Amaro C++, il gusto pieno dell'undefined behavior.
Ciao e grazie mille, funziona tutto. Riporto sotto il codice
codice:MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow) { ui->setupUi(this); ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(ui->tableWidget,SIGNAL(customContextMenuRequested(constQPoint&)),SLOT(ShowContextMenu(constQPoint&))); } voidMainWindow::ShowContextMenu(constQPoint&pos) { introw=ui->tableWidget->currentRow();intcolumn=ui->tableWidget->currentColumn(); ui->lineEdit->setText(ui->tableWidget->item(row,column)->text()); }
Una domanda come faccio a sapere se ho cliccato in una cella o su un bordo o su uno spazio della tabella vuoto?
mi rispondo da solo e chiedo conferma ho fatto così
codice:voidMainWindow::ShowContextMenu(constQPoint&pos) { if(ui->tableWidget->itemAt(pos)!=NULL) { ui->lineEdit->setText(ui->tableWidget->itemAt(pos)->text()); } }