Может быть такое, что контекстное меню не работает именно на нижней(последней строчке)? из-за того что итема для последней строчке не существует, хотя таблица заполнена?
QTableWidgetItem* item;
item = pw->itemAt(pos);
if (!item)
return;
и как убрать контекстное меню с шапки? чтобы только по содержимому?
может там QTableWidgetItem* item; съехал?
в дебаге проверил, на нижнем элементе итем значение null