This is strange. could you try if this snippet works for you?
#include <QApplication>
#include <QWidget>
#include <QVBoxLayout>
#include <QPushButton>
#include <QTableWidget>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget mainWid;
QStringList changedValues;
QVBoxLayout* mainLay=new QVBoxLayout(&mainWid);
QTableWidget* tableWidget = new QTableWidget(&mainWid);
QPushButton* button = new QPushButton(QStringLiteral("Display list"),&mainWid);
QLabel* resultLabel = new QLabel(&mainWid);
mainLay->addWidget(tableWidget);
mainLay->addWidget(button );
mainLay->addWidget(resultLabel );
tableWidget->setColumnCount(1);
tableWidget->setRowCount(5);
for(int i=0;i<5;i++){
QTableWidgetItem* const newItem= new QTableWidgetItem;
newItem->setData(Qt::EditRole,i);
tableWidget->setItem(i,0,newItem);
}
QObject::connect(tableWidget,&QTableWidget::cellChanged,[&changedValues,tableWidget](int row, int column)->void{changedValues<<tableWidget->item(row,column)->text();});
QObject::connect(button ,&QPushButton::clicked,[&changedValues,resultLabel ]()->void{resultLabel->setText(changedValues.join(','));});
mainWid.show();
return a.exec();
}