А перед обращением к методам проверь сначала сам итем, например в дебаге. Что будет выдавать на qDebug() << this->item(0,0) (например). Если 0, тогда это все таки указатель вникуда, поэтому и вылетает (опять же память не выделена). Если не 0, тогда уже более странно.
Испытания:
В главном виджете создал:
ctw = new CargoTableWidget(this);
ctw->show();
ui->verticalLayout->addWidget(ctw);
adjustSize();
Для CargoTableWidget установил в конструкторе по 3 столбца и строки и сделал слот:
void CargoTableWidget::setText()
{
//QTableWidgetItem *twi = new QTableWidgetItem("");
//this->setItem(0,0,twi);
this->item(0,0)->setText("Text");
}
Пока первые 2 строчки (выделение памяти) закоментированны, программа закрывается.
Но если проблема не в этом, то хз...